{"id":27966508,"url":"https://github.com/techery/immutables-gson-adapters-provider","last_synced_at":"2026-05-18T14:36:41.696Z","repository":{"id":75020304,"uuid":"95229985","full_name":"techery/immutables-gson-adapters-provider","owner":"techery","description":"Annotation Processor to generate List of generated Gson's TypeAdapterFactory(s) for Immutables.org","archived":false,"fork":false,"pushed_at":"2017-06-26T18:24:36.000Z","size":59,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-29T06:39:21.741Z","etag":null,"topics":["gson","immutables","processing"],"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/techery.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-06-23T14:55:50.000Z","updated_at":"2017-06-26T20:02:35.000Z","dependencies_parsed_at":"2023-02-28T23:15:37.466Z","dependency_job_id":null,"html_url":"https://github.com/techery/immutables-gson-adapters-provider","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/techery/immutables-gson-adapters-provider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fimmutables-gson-adapters-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fimmutables-gson-adapters-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fimmutables-gson-adapters-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fimmutables-gson-adapters-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techery","download_url":"https://codeload.github.com/techery/immutables-gson-adapters-provider/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fimmutables-gson-adapters-provider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33181296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["gson","immutables","processing"],"created_at":"2025-05-07T20:19:12.103Z","updated_at":"2026-05-18T14:36:41.688Z","avatar_url":"https://github.com/techery.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Immutables.org Gson Adapters Provider\nAnnotation Processor to aggregate all generated `Gson`'s `TypeAdapterFactory`(s) by [Immutables.org](http://immutables.github.io/json.html)\n\n## What is it for?\n[Immutables.org](http://immutables.github.io/) is handy for models and [Gson](https://github.com/google/gson) type adapters generation,\nthe problems is you have to register all auto-generated adapters manually\n– that's where the processor comes in: it creates simple class to provide `Collection` of `TypeAdapterFacotory`.\n\n## Usage \u0026 Installation\n```java\nGsonBuilder gsonBuilder = new GsonBuilder();\nfor (TypeAdapterFactory immutablesFactory : new ImmutablesGsonAdaptersProvider().getAdapters()) {\n  gsonBuilder.registerTypeAdapterFactory(immutablesFactory);\n}\nGson gson = gsonBuilder.create();\n```\n\n[![](https://jitpack.io/v/techery/immutables-gson-adapters-provider.svg)](https://jitpack.io/#techery/immutables-gson-adapters-provider)\n[![Build Status](https://travis-ci.org/techery/immutables-gson-adapters-provider.svg?branch=master)](https://travis-ci.org/techery/immutables-gson-adapters-provider)\n\n```groovy\nrepositories {\n    maven { url \"https://jitpack.io\" }\n}\n\ncompileJava { // optionally\n    options.compilerArgs += '-Aorg.immutables.gson.adapter.package=org.immutables.gson.adapter.util'\n    options.compilerArgs += '-Aorg.immutables.gson.adapter.provider_name=ImmutablesGsonAdaptersProvider'\n}\n\ndependencies {\n    apt 'com.github.techery:immutables-gson-adapters-provider:$version'\n}\n```\n\n## Caveats\nProcessor uses only 1 round of annotation processing and while you don't generate interfaces for immutables (to generate models upon) it should be okey.\nThe most solid solution would involve some gradle plugin to operate with classes generated by every possible round of processing, but is another story.\n\nAlso, Immutables.org generates `META-INF/services` file so possibly could be used by `ServiceLoader` but it's not a reliable solution for `android` and could cause performance penalty.\n\n## Credits\nThanks to [Immutables.org](http://immutables.github.io/) for their constantly improving library and [@devanatolii](https://github.com/DevAnatolii) for basic processor implementation.\n\n## License\n\n    Copyright (c) 2017 Techery\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechery%2Fimmutables-gson-adapters-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechery%2Fimmutables-gson-adapters-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechery%2Fimmutables-gson-adapters-provider/lists"}