{"id":34365343,"url":"https://github.com/easymock/objenesis","last_synced_at":"2026-03-17T20:02:38.126Z","repository":{"id":9547665,"uuid":"11453959","full_name":"easymock/objenesis","owner":"easymock","description":"Okay, it's pretty easy to instantiate objects in Java through standard reflection. However there are many cases where you need to go beyond what reflection provides.  For example, if there's no public constructor, you want to bypass the constructor code, or set final fields.  There are numerous clever (but fiddly) approaches to getting around this and this library provides a simple way to get at them.  You will find the official site here.","archived":false,"fork":false,"pushed_at":"2026-03-06T22:18:26.000Z","size":4336,"stargazers_count":628,"open_issues_count":7,"forks_count":97,"subscribers_count":31,"default_branch":"master","last_synced_at":"2026-03-13T05:13:55.789Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"objenesis.org","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/easymock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SupportedJVMs.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["henri-tremblay"]}},"created_at":"2013-07-16T16:08:53.000Z","updated_at":"2026-03-06T22:18:28.000Z","dependencies_parsed_at":"2023-12-15T05:21:55.962Z","dependency_job_id":"2e6fb169-eaea-406a-80d4-3aedcf79bab4","html_url":"https://github.com/easymock/objenesis","commit_stats":{"total_commits":1035,"total_committers":24,"mean_commits":43.125,"dds":0.3545893719806763,"last_synced_commit":"4b1b524020afe22eb83fe0b28cff84f38ccb8960"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/easymock/objenesis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Fobjenesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Fobjenesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Fobjenesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Fobjenesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easymock","download_url":"https://codeload.github.com/easymock/objenesis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Fobjenesis/sbom","scorecard":{"id":364253,"data":{"date":"2025-08-11","repo":{"name":"github.com/easymock/objenesis","commit":"0ab8c6da68914da18e343759be4f6e18c44ffda6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"15 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":4,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Warn: no linked content found","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/auto-assign.yml:11","Warn: no topLevel permission defined: .github/workflows/auto-assign.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:12"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":2,"reason":"dependency not pinned by hash detected -- score normalized to 2","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/objenesis/auto-assign.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/objenesis/auto-assign.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/objenesis/auto-assign.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/objenesis/auto-assign.yml/master?enable=pin","Info:   2 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 3.4 not signed: https://api.github.com/repos/easymock/objenesis/releases/154335023","Warn: release artifact 3.3 not signed: https://api.github.com/repos/easymock/objenesis/releases/73316145","Warn: release artifact 3.2 not signed: https://api.github.com/repos/easymock/objenesis/releases/40136740","Warn: release artifact 3.1 not signed: https://api.github.com/repos/easymock/objenesis/releases/20488951","Warn: release artifact 3.0.1 not signed: https://api.github.com/repos/easymock/objenesis/releases/13524622","Warn: release artifact 3.4 does not have provenance: https://api.github.com/repos/easymock/objenesis/releases/154335023","Warn: release artifact 3.3 does not have provenance: https://api.github.com/repos/easymock/objenesis/releases/73316145","Warn: release artifact 3.2 does not have provenance: https://api.github.com/repos/easymock/objenesis/releases/40136740","Warn: release artifact 3.1 does not have provenance: https://api.github.com/repos/easymock/objenesis/releases/20488951","Warn: release artifact 3.0.1 does not have provenance: https://api.github.com/repos/easymock/objenesis/releases/13524622"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T11:29:58.476Z","repository_id":9547665,"created_at":"2025-08-18T11:29:58.476Z","updated_at":"2025-08-18T11:29:58.476Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30630027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","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":"2025-12-18T07:07:43.139Z","updated_at":"2026-03-17T20:02:38.117Z","avatar_url":"https://github.com/easymock.png","language":"Java","funding_links":["https://github.com/sponsors/henri-tremblay"],"categories":["Projects"],"sub_categories":[],"readme":"# Objenesis\n\nObjenesis is a library dedicated to bypass the constructor when creating an object. On any JVM there is.\n\nYou can find the website and user documentation at [objenesis.org](https://objenesis.org).\n\n# Developer information\n\n## Project status\n\n[![Build Status](https://github.com/easymock/objenesis/actions/workflows/ci.yml/badge.svg)](https://github.com/easymock/objenesis/actions/workflows/ci.yml?query=branch%3Amaster)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.objenesis/objenesis/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.objenesis/objenesis)\n\n## Environment setup\n\nI'm using:\n- Maven 3.9.11\n- IntelliJ Ultimate 2025.3.1 (thanks to JetBrains for the license) (it should also work with Eclipse)\n\nTo configure your local workspace:\n- Import the Maven parent project to Eclipse or IntelliJ\n- Import the Eclipse formatting file `objenesis-formatting.xml` (usable in Eclipse or IntelliJ)\n\n## To build with Maven\n\nThere are two different levels of build.\n\n### Build without any active profile\n\nIt is a basic compilation of the application.\n\n`mvn install`\n\n### Full build\n\nThis build will create the source and javadoc jars and run spotbugs.\n\n`mvn install -Pfull`\n\n## To run special builds\n\n### Run the Android TCK\n\n#### Install required tools:\n\n##### MacOs / *nix\n- Install the Android SDK (`brew cask install android-sdk`)\n- Install `platform-tools` and `build-tools` using the sdkmanager (`sdkmanager \"platform-tools\" \"build-tools\"`)\n- Add an `ANDROID_HOME` to target the Android SDK (`export ANDROID_HOME=$(realpath $(echo \"$(dirname $(readlink $(which sdkmanager)))/../..\"))`)\n\n##### Windows\n- [Install Android Studio](https://developer.android.com/studio)\n- Launch studio and install SDK and emulator\n- Add an `ANDROID_HOME` to environmental variables (path used to install SDK on previous step)\n\n#### Run\n- Configure a device (real or simulated) and launch it (use **API 26**, after that it asks for a signature, that isn't supported yet)\n- Activate the debug mode if it's a real device\n- `mvn package -Pandroid`\n\n### Run the benchmarks\n\n```bash\nmvn package -Pbenchmark\ncd benchmark\n./launch.sh\n```\n\n### Generate the website\n\n`mvn package -Pwebsite`\n\n## To update the versions\n\n- `mvn versions:set -DnewVersion=X.Y -Pall`\n- `mvn versions:commit -Pall` if everything is ok, `mvn versions:revert -Pall` otherwise\n\n## Configure to deploy to the Sonatype maven repository\n\n- You will first need to add something like this to your settings.xml\n```xml\n\u003cservers\u003e\n   \u003cserver\u003e\n      \u003cid\u003eossrh\u003c/id\u003e\n      \u003cusername\u003esonatypeuser\u003c/username\u003e\n      \u003cpassword\u003esonatypepassword\u003c/password\u003e\n   \u003c/server\u003e\n\u003c/servers\u003e\n```\n- Then follow the [instructions](https://central.sonatype.org/pages/working-with-pgp-signatures.html) from the site below to create your key to sign the deployed items\n\n## To check dependencies and plugins versions\n\n`mvn versions:display-dependency-updates versions:display-plugin-updates -Pall`\n\n## To upgrade the Maven wrapper\n\n`mvn wrapper:wrapper`\n\n## To update the license\n\n`mvn validate license:format -Pall`\n\n## To run modernizer\n\n`mvn modernizer:modernizer -Pall`\n\n## Reproducible build\n\nWe make sure a build will always create the same result with done from the same sources.\nIt follows these [guidelines](https://maven.apache.org/guides/mini/guide-reproducible-builds.html).\n\nUseful commands:\n```bash\n# Checks that all plugins are compatible\nmvn artifact:check-buildplan -Pfull,all\n# Build and install the artifact\nmvn clean install -Pfull,all\n# Build and compare the artifact with the installed one\nmvn clean verify artifact:compare -Pfull,all\n```    \n\n## To release\n\n* Add the release notes in `website/site/content/notes.html` You use this code to generate it. If you have more than 100 items, do it again with `\u0026page=2`\n\n```bash\n# Get the milestone matching the version\nversion=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | cut -d'-' -f1)\nmilestone=$(curl -s \"https://api.github.com/repos/easymock/objenesis/milestones\" | jq \".[] | select(.title==\\\"$version\\\") | .number\")\necho \"\u003ch1\u003eVersion $version ($(date '+%Y-%m-%d'))\u003c/h1\u003e\"\necho\necho \"\u003cul\u003e\"  \ncurl -s \"https://api.github.com/repos/easymock/objenesis/issues?milestone=${milestone}\u0026state=all\u0026per_page=100\" | jq -r '.[] | \"  \u003cli\u003e\" + .title + \" (#\" + (.number|tostring) + \")\u003c/li\u003e\"'\necho \"\u003c/ul\u003e\"\n```\n\n* Make sure you have Java 9+ in the path\n* Launch `./deploy.sh`\n* Answer the questions (normally, just acknowledge the proposed default)\n* Follow the instructions\n\nIf something fails, and you need to rollback a bit, the following commands might help:\n```bash\nmvn release:rollback -Pall\ngit tag -d $version\ngit push origin :refs/tags/$version\ngit reset --hard HEAD~2\n```\n\nIf you find something went wrong you can drop the staging repository with `mvn nexus-staging:drop`.\n\n## Deploy the website\n\n* Make sure the pom is at the version you want to release\n* Launch `./deploy-website.sh`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasymock%2Fobjenesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasymock%2Fobjenesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasymock%2Fobjenesis/lists"}