{"id":36420620,"url":"https://github.com/unlaunch/java-sdk","last_synced_at":"2026-01-11T17:33:17.123Z","repository":{"id":53142569,"uuid":"306938718","full_name":"unlaunch/java-sdk","owner":"unlaunch","description":"Unlaunch Java SDK to show or hide features on demand in Java web servers or backend applications. Compatible with all Java frameworks such as Spring, Spring Boot, Struts 2, etc. More info at: https://docs.unlaunch.io/docs/sdks/java-sdk","archived":false,"fork":false,"pushed_at":"2021-08-26T14:37:53.000Z","size":200,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-12T06:09:11.095Z","etag":null,"topics":["featureflags","flags","launchdarkly"],"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/unlaunch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-24T17:44:22.000Z","updated_at":"2021-08-26T15:23:06.000Z","dependencies_parsed_at":"2022-09-10T23:22:46.560Z","dependency_job_id":null,"html_url":"https://github.com/unlaunch/java-sdk","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/unlaunch/java-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlaunch%2Fjava-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlaunch%2Fjava-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlaunch%2Fjava-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlaunch%2Fjava-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unlaunch","download_url":"https://codeload.github.com/unlaunch/java-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlaunch%2Fjava-sdk/sbom","scorecard":{"id":910639,"data":{"date":"2025-08-11","repo":{"name":"github.com/unlaunch/java-sdk","commit":"6a39574c70b2ae0842f13e0ed0caa88afc5d6958"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":-1,"reason":"No tokens found","details":null,"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":"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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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.md:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.md: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":-1,"reason":"no releases found","details":null,"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 30 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":0,"reason":"55 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-h46c-h94j-95f3","Warn: Project is vulnerable to: GHSA-wf8f-6423-gfxg","Warn: Project is vulnerable to: GHSA-27xj-rqx5-2255","Warn: Project is vulnerable to: GHSA-288c-cq4h-88gq","Warn: Project is vulnerable to: GHSA-4w82-r329-3q67","Warn: Project is vulnerable to: GHSA-57j2-w4cx-62h2","Warn: Project is vulnerable to: GHSA-58pp-9c76-5625","Warn: Project is vulnerable to: GHSA-5949-rw7g-wx7w","Warn: Project is vulnerable to: GHSA-5p34-5m6p-p58g","Warn: Project is vulnerable to: GHSA-5r5r-6hpj-8gg9","Warn: Project is vulnerable to: GHSA-6fpp-rgj9-8rwc","Warn: Project is vulnerable to: GHSA-758m-v56v-grj4","Warn: Project is vulnerable to: GHSA-85cw-hj65-qqv9","Warn: Project is vulnerable to: GHSA-89qr-369f-5m5x","Warn: Project is vulnerable to: GHSA-8c4j-34r4-xr8g","Warn: Project is vulnerable to: GHSA-8w26-6f25-cm9x","Warn: Project is vulnerable to: GHSA-95cm-88f5-f2c7","Warn: Project is vulnerable to: GHSA-9gph-22xh-8x98","Warn: Project is vulnerable to: GHSA-9m6f-7xcq-8vf8","Warn: Project is vulnerable to: GHSA-9vvp-fxw6-jcxr","Warn: Project is vulnerable to: GHSA-c265-37vj-cwcc","Warn: Project is vulnerable to: GHSA-c2q3-4qrh-fm48","Warn: Project is vulnerable to: GHSA-cf6r-3wgc-h863","Warn: Project is vulnerable to: GHSA-cmfg-87vq-g5g4","Warn: Project is vulnerable to: GHSA-cvm9-fjm9-3572","Warn: Project is vulnerable to: GHSA-f3j5-rmmp-3fc5","Warn: Project is vulnerable to: GHSA-f9xh-2qgp-cq57","Warn: Project is vulnerable to: GHSA-fmmc-742q-jg75","Warn: Project is vulnerable to: GHSA-fqwf-pjwf-7vqv","Warn: Project is vulnerable to: GHSA-gjmw-vf9h-g25v","Warn: Project is vulnerable to: GHSA-gwp4-hfv6-p7hw","Warn: Project is vulnerable to: GHSA-gww7-p5w4-wrfv","Warn: Project is vulnerable to: GHSA-h3cw-g4mq-c5x2","Warn: Project is vulnerable to: GHSA-h4rc-386g-6m85","Warn: Project is vulnerable to: GHSA-h822-r4r5-v8jg","Warn: Project is vulnerable to: GHSA-j823-4qch-3rgm","Warn: Project is vulnerable to: GHSA-jjjh-jjxp-wpff","Warn: Project is vulnerable to: GHSA-m6x4-97wx-4q27","Warn: Project is vulnerable to: GHSA-mc6h-4qgp-37qh","Warn: Project is vulnerable to: GHSA-mph4-vhrx-mv67","Warn: Project is vulnerable to: GHSA-mx7p-6679-8g3q","Warn: Project is vulnerable to: GHSA-p43x-xfjf-5jhr","Warn: Project is vulnerable to: GHSA-q93h-jc49-78gg","Warn: Project is vulnerable to: GHSA-qjw2-hr98-qgfh","Warn: Project is vulnerable to: GHSA-qmqc-x3r4-6v39","Warn: Project is vulnerable to: GHSA-r3gr-cxrf-hg25","Warn: Project is vulnerable to: GHSA-r695-7vr9-jgc2","Warn: Project is vulnerable to: GHSA-rf6r-2c4q-2vwg","Warn: Project is vulnerable to: GHSA-rgv9-q543-rqg4","Warn: Project is vulnerable to: GHSA-rpr3-cw39-3pxh","Warn: Project is vulnerable to: GHSA-v3xw-c963-f5hc","Warn: Project is vulnerable to: GHSA-v585-23hc-c647","Warn: Project is vulnerable to: GHSA-vfqx-33qm-g869","Warn: Project is vulnerable to: GHSA-wh8g-3j2c-rqj5","Warn: Project is vulnerable to: GHSA-c43q-5hpj-4crv"],"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-24T19:00:06.016Z","repository_id":53142569,"created_at":"2025-08-24T19:00:06.016Z","updated_at":"2025-08-24T19:00:06.016Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28315879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"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":["featureflags","flags","launchdarkly"],"created_at":"2026-01-11T17:33:16.495Z","updated_at":"2026-01-11T17:33:17.117Z","avatar_url":"https://github.com/unlaunch.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unlaunch Java SDK\n\n| main                                                                                                                | development                                                                                                                |\n|---------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|\n| [![Build Status](https://travis-ci.com/unlaunch/java-sdk.svg?branch=main)](https://travis-ci.com/unlaunch/java-sdk) | [![Build Status](https://travis-ci.com/unlaunch/java-sdk.svg?branch=development)](https://travis-ci.com/unlaunch/java-sdk) |\n\n## Overview\nThe Unlaunch Java SDK provides a Java API to access Unlaunch feature flags and other features. Using the SDK, you can\n easily build Java applications that can evaluate feature flags, dynamic configurations, and more.\n\n### Important Links\n\n- To create feature flags to use with Java SDK, login to your Unlaunch Console at [https://app.unlaunch.io](https://app.unlaunch.io)\n- [Official Guide](https://docs.unlaunch.io/docs/sdks/java-sdk)\n- [Javadocs](https://javadoc.io/doc/io.unlaunch.sdk/unlaunch-java-sdk/latest/index.html)\n- [MVN Repository](https://mvnrepository.com/artifact/io.unlaunch.sdk/unlaunch-java-sdk)\n- [Sonatype](https://oss.sonatype.org/#nexus-search;quick~io.unlaunch.sdk)\n\n### Compatibility\nUnlaunch Java SDK requires Java 8 or higher.\n\n ### This is a server-side SDK\n This SDK is server-side and should be used in applications that you run on your own servers such as backend\n  services or web servers. For more information, see [this](https://docs.unlaunch.io/docs/sdks/client-vs-server-side-sdks).\n\n## Getting Started\nHere is a simple example. \n\nFirst, add the maven dependency to your project. Use the latest version from [here](https://mvnrepository.com/artifact/io.unlaunch.sdk/unlaunch-java-sdk).\n\n```$xslt\n \u003cdependency\u003e\n    \u003cgroupId\u003eio.unlaunch.sdk\u003c/groupId\u003e\n    \u003cartifactId\u003eunlaunch-java-sdk\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\nHere's how you'd use the Java SDK in your application.\n\n```java\nimport io.unlaunch.UnlaunchClient;\n\npublic class ExampleApp { \n   public static void main(String[] args) {\n \n       // initialize the client\n       UnlaunchClient client = UnlaunchClient.create(\"INSERT_YOUR_SDK_KEY\");\n     \n       // wait for the client to be ready\n       try {\n         client.awaitUntilReady(2, TimeUnit.SECONDS);\n       } catch (InterruptedException | TimeoutException e) {\n         System.out.println(\"client wasn't ready \" + e.getMessage());\n       }\n       // get variation\n       String variation = client.getVariation(\"FLAG_KEY\", \"userId123\");\n      \n       // take action based on the returned variation\n       if (variation.equals(\"on\")) {\n           System.out.println(\"Variation is on\");\n       } else if (variation.equals(\"off\")) {\n           System.out.println(\"Variation is off\");\n       } else {\n           System.out.println(\"control variation\");\n       }\n\n      // If you attached (key-value) configuration to your feature flag variations, \n      // here's how you can retrieve it:\n       UnlaunchFeature feature = client.getFeature(\"FLAG_KEY\", userId);\n       String colorHexCode = feature.getVariationConfig().getString(\"login_btn_clr\", \"#cd5c5c\");\n\n       // shutdown the client to flush any events or metrics \n       client.shutdown();\n   }\n}\n```\n\n For more information, see the [official guide](https://docs.unlaunch.io/docs/sdks/java-sdk#configuration).\n\n## Build instructions\n\n### Requirements\n- Java 8 or higher\n- Maven 2 or higher\n\nTo build the project using maven, run the following command:\n```$xslt\nmvn clean install -Dgpg.skip\n```\nNote: Use `-Dgpg.skip` to bypass GPG keyphrase prompt. It is only needed for publishing to Maven Central repo.\n\nTo run all unit and integration tests:\n```$xslt\nmvn verify\n```\n\nIf tests are failing, and you need to build (not recommended,) you can force to skip tests:\n```$xslt\nmvn clean install -Dmaven.test.skip=true -Dgpg.skip\n```\n\n## Customization\n\nYou can use builder to customize the client. For more information, see the [official guide](https://docs.unlaunch.io/docs/sdks/java-sdk#configuration).\n\n```$xslt\nUnlaunchClient client = UnlaunchClient.builder()\n                .sdkKey(\"INSERT_YOUR_SDK_KEY\")\n                .pollingInterval(60, TimeUnit.SECONDS)\n                .eventsFlushInterval(30, TimeUnit.SECONDS)\n                .eventsQueueSize(500)\n                .metricsFlushInterval(30, TimeUnit.SECONDS)\n                .metricsQueueSize(100)\n                .build();\n```\n\n### Offline Mode\n\nYou can start the SDK in 'offline mode' for testing purposes. In the offline mode, flags aren't downloaded from the\n server and no data is transferred. All calls to `getVariation` or its variants will return `control`. Read more in\n  the [official guide](https://docs.unlaunch.io/docs/sdks/java-sdk#offline-mode).\n \n To start the client in the offline mode for testing purposes, call the `offlineMode` method:\n  \n  ```$xslt\nUnlaunchClient client = UnlaunchClient.builder().offlineMode().build();\n  ```\n\n## Contributing\nPlease see [CONTRIBUTING](CONTRIBUTING.md) to find how you can contribute.\n\n## License\nLicensed under the Apache License, Version 2.0. See: [Apache License](LICENSE.md).\n\n## Publish Releases on Maven Central\nTo publish a new release version on Maven Central, there are two ways. Make sure you have `-SNAPSHOT` version in the pom file.\n\nCreate a new Git tag and let the `./deploy` script do its job. You'll need to **manually** update the version in `pom\n.xml` after this is successful. Only do this on the `main` branch. For example, to release `0.0.3` version:\n\n```$xslt\ngit tag 0.0.3 \ngit push origin --tags\n```\n\nYou **must** then update `pom.xml` version to be `0.0.4-SNAPSHOT`. Commit your code to `develop` and PR into `main`.\n\nAlternatively, you can also use the Maven Release plugin to deploy directly from your machine. \n \nHelpful guides:\n- [guide](https://central.sonatype.org/pages/apache-maven.html)\n- [guide](https://infra.apache.org/publishing-maven-artifacts.html)\n\n## About Unlaunch\nUnlaunch is a Feature Release Platform for engineering teams. Our mission is allow engineering teams of all\n sizes to release features safely and quickly to delight their customers. To learn more about Unlaunch, please visit\n  [www.unlaunch.io](https://unlaunch.io). You can sign up to get started for free at [https://app.unlaunch.io/signup\n  ](https://app.unlaunch.io/signup).\n\n## FAQs\n\n##### Question: I'm seeing `gpg: signing failed: Inappropriate ioctl for device`\nAnswer: Please run `export GPG_TTY=$(tty)` See: https://github.com/keybase/keybase-issues/issues/2798\n\n##### Question: Where are the artifacts deployed?\nAnswer: The artifacts are published on Sonatype at: https://oss.sonatype.org/#nexus-search;quick~io.unlaunch.sdk\n\n## More Questions?\nAt Unlaunch, we are obsessed about making it easier for developers all over the world to release features safely and with confidence. If you have *any* questions or something isn't working as expected, please email **unlaunch@gmail.com**.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funlaunch%2Fjava-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funlaunch%2Fjava-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funlaunch%2Fjava-sdk/lists"}