{"id":21154939,"url":"https://github.com/forge/furnace-guice","last_synced_at":"2025-08-17T20:07:12.070Z","repository":{"id":35977287,"uuid":"40268622","full_name":"forge/furnace-guice","owner":"forge","description":"Furnace Guice Service Container","archived":false,"fork":false,"pushed_at":"2016-12-07T00:17:41.000Z","size":59,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-22T06:35:46.117Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/forge.png","metadata":{"files":{"readme":"README.asciidoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-05T21:00:45.000Z","updated_at":"2016-12-06T21:05:39.000Z","dependencies_parsed_at":"2022-09-01T13:10:18.503Z","dependency_job_id":null,"html_url":"https://github.com/forge/furnace-guice","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/forge/furnace-guice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Ffurnace-guice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Ffurnace-guice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Ffurnace-guice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Ffurnace-guice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forge","download_url":"https://codeload.github.com/forge/furnace-guice/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Ffurnace-guice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270899578,"owners_count":24664720,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-20T11:08:19.050Z","updated_at":"2025-08-17T20:07:12.000Z","avatar_url":"https://github.com/forge.png","language":"Java","readme":"== Furnace Container: Guice\n:idprefix: id_ \n\nimage:https://forge.ci.cloudbees.com/job/furnace-guice/badge/icon[\"Build Status\", link=\"https://forge.ci.cloudbees.com/job/furnace-guice/\"] \nimage:http://img.shields.io/:license-EPL-blue.svg[\"License\", link=\"https://www.eclipse.org/legal/epl-v10.html\"] \nimage:https://maven-badges.herokuapp.com/maven-central/org.jboss.forge.furnace.container/guice/badge.svg[\"Maven Central\", link=\"https://maven-badges.herokuapp.com/maven-central/org.jboss.forge.furnace.container/guice\"] \n\nThis addon is a 'Furnace container' that provides lifecycle and service registry support for dependent addons. Other addons may depend on this to use the Guice programming model and dependency injection framework.\n       \n=== Dependencies: None\n\n== Setup\n\nThis Addon requires the following installation steps.\n\n=== Add configuration to pom.xml \n\nTo use this addon, you must add it as a dependency in the *pom.xml* of your `forge-addon` classified artifact:\n[source,xml]\n----\n\u003cdependency\u003e\n   \u003cgroupId\u003eorg.jboss.forge.furnace.container\u003c/groupId\u003e\n   \u003cartifactId\u003eguice\u003c/artifactId\u003e\n   \u003cclassifier\u003eforge-addon\u003c/classifier\u003e\n   \u003cversion\u003e${version}\u003c/version\u003e\n\u003c/dependency\u003e\n----\n== Create a `com.google.inject.Module` implementation as a Service provider in your addon\nIn order for Guice to detect your services, you must add a `src/main/resources/META-INF/services/com.google.inject.Module` file in your project containing the `com.google.inject.Module` implementation.\n\n== Features\n\nObservable events::\nThe Furnace container publishes several observable events to all addons throughout their lifecycle. In order to listen for events, implement the `org.jboss.forge.furnace.container.guice.EventListener` interface.\n\n[source,java]\n----\npublic class MyEmitter {\n    @Inject \n    EventManager eventManager;\n\n    public void fire() {\n        eventManager.fireEvent(\"FOO\");\n    }\n}\n\npublic class MyObserver implements EventListener {\n\n    public void handleEvent(Object event, Annotation ... qualifiers) {\n        // \"FOO\".equals(event) == true\n    }\n    \n}\n----\n\nInjection of Furnace APIs:: This container also allows for injection of some of the core Furnace APIs into your\nobjects. Below is a list of all injectable API types.\n\n[options=\"header\"]\n|===\n|Injectable Type |Description\n\n|@Inject private Furnace service;\n|A handle to the Furnace container in which this addon is being run.\n    \n|@Inject private Addon self;\n|A reference to this addon itself. Allows access to the addon version, `ClassLoader`, service registry, current \nlifecycle status, and addon dependencies.\n    \n|@Inject private AddonRegistry addonRegistry;\n|A reference to the global Furnace addon registry - can be used to retrieve addon and exported service instances.\n    \n|===\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforge%2Ffurnace-guice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforge%2Ffurnace-guice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforge%2Ffurnace-guice/lists"}