{"adoption": {"forks": 378, "observed_at": "2026-08-28T04:07:24.131632+00:00", "stars": 2825}, "canonical_url": "https://ross.abutalabs.com/products/joor", "card": {"archived": false, "artifact_type": "library", "description": " jOOR - Fluent Reflection in Java jOOR is a very simple fluent API that gives access to your Java Class structures in a more intuitive way. The JDK's reflection APIs are hard and verbose to use. Other languages have much simpler constructs to access type meta information at runtime. Let us make Java reflection better.", "domain": ["developer-tools", "programming-languages"], "enriched": true, "function": ["developer-tools", "parser", "compiler"], "health_score": 20, "homepage": "http://www.jooq.org/products", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["jOOQ/jOOR"], "name": "jOOQ/jOOR", "platform": ["jvm", "cross-platform"], "pushed_at": "2025-01-06T10:12:58+00:00", "repo": "jOOQ/jOOR", "stars": 2825, "tags": ["reflection", "fluent-api", "runtime-compilation", "proxies", "java"], "topics": [], "urls": [], "use_cases": ["simplify verbose Java reflection code", "call methods and constructors fluently at runtime", "create dynamic proxies from interfaces easily", "compile Java source code at runtime", "access private fields and methods in tests"], "what_it_is": "jOOR is a small, dependency-free fluent API wrapper around Java's java.lang.reflect package, making reflection more intuitive and concise. It also simplifies java.lang.reflect.Proxy usage and offers optional runtime compilation of Java source code via javax.tools.JavaCompiler.", "when_to_avoid": ["you can use compile-time-safe alternatives like code generation", "your platform forbids reflection (e.g. native-image without configuration)", "you need reflection features beyond jOOR's wrapper scope"], "when_to_choose": ["you need frequent runtime reflection in Java and want readable, concise code", "you want a zero-dependency reflection utility", "you need simple dynamic proxy creation or runtime compilation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/joor", "repo": "jOOQ/jOOR", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.131632+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:38:14.633259+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d6b46431a9c3690e3aba8a0ba7abe844d525b3347ee13c8b930ad4ef2729", "fetched_at": "2026-08-28T04:07:24.131632+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jOOQ/jOOR"}, {"content_hash": "562a7d522bc688eecf4b465678136a271f8ca770776d453974e53edfc25aec40", "fetched_at": "2026-08-29T09:53:36.514120+00:00", "kind": "homepage", "missing": false, "url": "http://www.jooq.org/products"}, {"content_hash": "142f328a13809c1d00c03950e3f67ea33c0246581a5ea01b41004c137f06da85", "fetched_at": "2026-08-29T09:53:36.520660+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/3.21/manual/getting-started/tutorials/jooq-in-7-steps"}, {"content_hash": "c5eab282f2ad93c4633ba4216bdcf2bb76941594d09e967998f05753aabf56ee", "fetched_at": "2026-08-29T09:53:36.522297+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/doc/latest/manual/getting-started/the-manual"}, {"content_hash": "ba6d52f4ddaab3b88753ba342d84f38725efeeed1ec0f7ef2496d4635578848a", "fetched_at": "2026-08-29T09:53:36.516913+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/download"}, {"content_hash": "d237f8493427820e7ef81a5c93a8dca46858a3e521895fd419aef22a7354a2be", "fetched_at": "2026-08-29T09:53:36.518985+00:00", "kind": "site_page", "missing": false, "url": "http://www.jooq.org/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5361, "days_push": 604, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}