{"id":13485614,"url":"https://github.com/matteobaccan/owner","last_synced_at":"2025-05-14T19:03:30.400Z","repository":{"id":41344521,"uuid":"7292204","full_name":"matteobaccan/owner","owner":"matteobaccan","description":"Get rid of the boilerplate code in properties based configuration.","archived":false,"fork":false,"pushed_at":"2024-10-22T12:15:14.000Z","size":5127,"stargazers_count":917,"open_issues_count":131,"forks_count":213,"subscribers_count":56,"default_branch":"master","last_synced_at":"2024-10-22T12:22:38.441Z","etag":null,"topics":["configuration","hacktoberfest","properties"],"latest_commit_sha":null,"homepage":"https://matteobaccan.github.io/owner/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matteobaccan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"lviggiano"}},"created_at":"2012-12-23T05:38:31.000Z","updated_at":"2024-10-22T12:15:17.000Z","dependencies_parsed_at":"2023-10-03T01:42:12.003Z","dependency_job_id":"9211ac1b-9f2d-47f3-8794-6a5152e220bf","html_url":"https://github.com/matteobaccan/owner","commit_stats":null,"previous_names":["lviggiano/owner"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteobaccan%2Fowner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteobaccan%2Fowner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteobaccan%2Fowner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteobaccan%2Fowner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matteobaccan","download_url":"https://codeload.github.com/matteobaccan/owner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710399,"owners_count":21149185,"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","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":["configuration","hacktoberfest","properties"],"created_at":"2024-07-31T18:00:28.017Z","updated_at":"2025-05-14T19:03:30.394Z","avatar_url":"https://github.com/matteobaccan.png","language":"Java","funding_links":["https://github.com/sponsors/lviggiano"],"categories":["Projects"],"sub_categories":["Configuration"],"readme":"OWNER\n=====\n\nOWNER, an API to ease Java property files usage.\n\n[![Build Status](https://travis-ci.org/lviggiano/owner.png?branch=master)](https://travis-ci.org/lviggiano/owner)\n[![Coverage Status](https://coveralls.io/repos/lviggiano/owner/badge.png)](https://coveralls.io/r/lviggiano/owner)\n[![security status](https://www.meterian.com/badge/gh/lviggiano/owner/security)](https://www.meterian.com/report/gh/lviggiano/owner)\n[![stability status](https://www.meterian.com/badge/gh/lviggiano/owner/stability)](https://www.meterian.com/report/gh/lviggiano/owner)\n[![Built with Maven](http://maven.apache.org/images/logos/maven-feather.png)](http://maven.apache.org)\n\n\nINTRODUCTION\n------------\n\nThe goal of OWNER API is to minimize the code required to handle\napplication configuration through Java properties files.\n\nFull documentation available on [project website][website].\n\nBASIC USAGE\n-----------\n\nThe approach used by OWNER APIs, is to define a Java interface\nassociated to a properties file.\n\nSuppose your properties file is defined\nas `ServerConfig.properties`:\n\n```properties\nport=80\nhostname=foobar.com\nmaxThreads=100\n```\n\nTo access this property you need to define a convenient Java\ninterface in `ServerConfig.java`:\n\n```java\npublic interface ServerConfig extends Config {\n    int port();\n    String hostname();\n    int maxThreads();\n}\n```\n\nWe'll call this interface the *Properties Mapping Interface* or\njust *Mapping Interface* since its goal is to map Properties into\na an easy to use piece of code.\n\nThen, you can use it from inside your code:\n\n```java\npublic class MyApp {\n    public static void main(String[] args) {\n        ServerConfig cfg = ConfigFactory.create(ServerConfig.class);\n        System.out.println(\"Server \" + cfg.hostname() + \":\" + cfg.port() +\n                           \" will run \" + cfg.maxThreads());\n    }\n}\n```\n\nBut this is just the tip of the iceberg.\n\nContinue reading here: [Basic usage](https://matteobaccan.github.io/owner/docs/usage/).\n\nDOWNLOAD\n--------\n\nPublic Releases can be downloaded from [GitHub Releases](https://github.com/lviggiano/owner/releases) page or\n[Maven Central Repository](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.aeonbits.owner%22%20AND%20a%3A%22owner%22).\n\n\nDOCUMENTATION\n-------------\n\nMake sure to have a look at the documentation on [project website][website]\nto learn how flexible and powerful OWNER is, and why you may need it!\n\nChinese documentation is provided by [Yunfeng Cheng](https://github.com/cyfonly) via a GitHub independent project at\n[this address][chinese-docs].\n\n  [website]: https://matteobaccan.github.io/owner\n  [chinese-docs]: https://github.com/cyfonly/owner-doc\nHere’s an improved version of the documentation section you shared:\n\nQUESTIONS AND DOCUMENTATION\n---------------------------\n\nFor interact with the **Owner Documentation**, visit [Deep Wiki](https://deepwiki.com/matteobaccan/owner).\n\nLICENSE\n-------\n\nOWNER is released under the BSD license.\nSee [LICENSE][] file included for the details.\n\n  [LICENSE]: https://raw.github.com/lviggiano/owner/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatteobaccan%2Fowner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatteobaccan%2Fowner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatteobaccan%2Fowner/lists"}