{"id":26032723,"url":"https://github.com/apache/geronimo-config","last_synced_at":"2025-09-05T05:48:27.357Z","repository":{"id":22880454,"uuid":"97564457","full_name":"apache/geronimo-config","owner":"apache","description":"Apache Geronimo Config","archived":false,"fork":false,"pushed_at":"2022-02-24T19:04:05.000Z","size":244,"stargazers_count":16,"open_issues_count":1,"forks_count":14,"subscribers_count":16,"default_branch":"trunk","last_synced_at":"2025-09-04T00:47:12.711Z","etag":null,"topics":["geronimo","http","java","javaee","network-server","web-framework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"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/apache.png","metadata":{"files":{"readme":"README.adoc","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}},"created_at":"2017-07-18T07:00:07.000Z","updated_at":"2025-08-27T12:13:29.000Z","dependencies_parsed_at":"2022-09-16T10:50:34.125Z","dependency_job_id":null,"html_url":"https://github.com/apache/geronimo-config","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/apache/geronimo-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeronimo-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeronimo-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeronimo-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeronimo-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/geronimo-config/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeronimo-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273718343,"owners_count":25155486,"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-09-05T02:00:09.113Z","response_time":402,"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":["geronimo","http","java","javaee","network-server","web-framework"],"created_at":"2025-03-06T22:54:49.365Z","updated_at":"2025-09-05T05:48:22.340Z","avatar_url":"https://github.com/apache.png","language":"Java","readme":"//\n// Licensed to the Apache Software Foundation (ASF) under one or more\n// contributor license agreements.  See the NOTICE file distributed with\n// this work for additional information regarding copyright ownership.\n// The ASF licenses this file to You under the Apache License, Version 2.0\n// (the \"License\"); you may not use this file except in compliance with\n// the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\n# Configuration for Java SE and EE\n\n## Status\n\nImplementation of the MicroProfile Config Specification.\n\n== Rationale\n\nMany project artifacts (e.g. WAR, EAR) should only be created once and then get installed at different customers, stages, etc\nThey need to target those different execution environments without necessity of any repackaging.\nIn other words: depending on the situation they need different configuration.\n\nThis is easily achievable by having a set of default configuration values inside the project artifact.\nBut be able to overwrite those default values from external.\n\n== History\n\nThis very configuration approach has it's roots in the Apache OpenWebBeans internal SPI configuration.\nIn 2010 it got moved over to the Apache MyFaces CODI project and enhanced to also fit the need of customer projects by Gerhard Petracek and Mark Struberg.\nIn 2011 we further enhanced it while moving CODI to the Apache DeltaSpike project.\nRomain Manni-Bucau (Apache/Tomitribe), Ron Smeral (JBoss) and Anatole Tresch also gave appreciated input in the last years.\n\n== How it works\n\nA 'Configuration' consists of the information collected from the registered `ConfigSource` s.\nThese `ConfigSource`s get sorted according to their _ordinal_.\nThat way it is possible to overwrite configuration with lower importance from outside.\n\nBy default there are 3 default ConfigSources:\n\n* `System.getenv()` (ordinal=400)\n* `System.getProperties()` (ordinal=300)\n* all `META-INF/microprofile-config.properties` files on the ClassPath. (ordinal=100, separately configurable via a config_ordinal property inside each file)\n\nThat means that I can put my default configuration in a `META-INF/microprofile-config.properties` anywhere on the classpath.\nAnd I can later simply e.g set a system property to change this default configuration.\n\n== Custom ConfigSources\n\nIt is possible to write and register custom `ConfigSource`s.\nAn example would be a ConfigSource which gets the configured values from a shared database table in a cluster.\n\n== Building\n\nAgainst Apache OpenWebBeans 1.7.x:\n`$\u003e mvn clean install`\n\nAgainst Apache OpenWebBeans 2.0.x:\n`$\u003e mvn clean install -POWB2`\n\nAgainst JBoss Weld 3.0.x:\n`$\u003e mvn clean install -PWeld3`\n\n== Adding to your project\n\nTo add Geronimo Config to your project, just add the following dependency.\n\n[source,xml]\n----\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.apache.geronimo.config\u003c/groupId\u003e\n    \u003cartifactId\u003egeronimo-config-impl\u003c/artifactId\u003e\n    \u003cversion\u003e1.0\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\n\n== Config API\n\nGeronimo Config implements The MicroProfile Config API v1.1 and further information can be found at\n\nhttps://github.com/eclipse/microprofile-config/\n\nThe API is also available as Maven Artifact, which you could use if provided by your container\n\n[source,xml]\n----\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.eclipse.microprofile.config\u003c/groupId\u003e\n    \u003cartifactId\u003emicroprofile-config-api\u003c/artifactId\u003e\n    \u003cversion\u003e1.1\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n----\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fgeronimo-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fgeronimo-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fgeronimo-config/lists"}