{"id":19974007,"url":"https://github.com/objectbox/objectbox-java-generator","last_synced_at":"2025-05-04T02:32:27.246Z","repository":{"id":225975932,"uuid":"391871519","full_name":"objectbox/objectbox-java-generator","owner":"objectbox","description":"The ObjectBox Gradle Plugin makes using ObjectBox easy in a JVM or Android project written in Java or Kotlin","archived":false,"fork":false,"pushed_at":"2025-03-19T10:32:36.000Z","size":3116,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-25T13:52:15.040Z","etag":null,"topics":["android","database","java","jvm","kotlin","mobile"],"latest_commit_sha":null,"homepage":"https://objectbox.io","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/objectbox.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-02T08:33:50.000Z","updated_at":"2025-03-19T10:32:41.000Z","dependencies_parsed_at":"2024-06-03T16:12:34.037Z","dependency_job_id":"f07e9181-9793-4a0c-924b-fe6f3cad045f","html_url":"https://github.com/objectbox/objectbox-java-generator","commit_stats":null,"previous_names":["objectbox/objectbox-java-generator"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectbox%2Fobjectbox-java-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectbox%2Fobjectbox-java-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectbox%2Fobjectbox-java-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectbox%2Fobjectbox-java-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/objectbox","download_url":"https://codeload.github.com/objectbox/objectbox-java-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252279052,"owners_count":21722828,"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":["android","database","java","jvm","kotlin","mobile"],"created_at":"2024-11-13T03:13:35.025Z","updated_at":"2025-05-04T02:32:27.240Z","avatar_url":"https://github.com/objectbox.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cpicture\u003e\u003cimg width=\"466\" src=\"./images/objectbox-logo.png\" alt=\"ObjectBox\"\u003e\u003c/picture\u003e\u003c/p\u003e\n\n# ObjectBox Gradle Plugin\n                            \nThe ObjectBox Gradle Plugin makes using ObjectBox easy in a JVM or Android project written in Java or Kotlin, \nand is free and open source. See the [documentation on how to get started](https://docs.objectbox.io/getting-started).\n\nThe plugin\n\n- automatically adds a dependency on [the Java SDK](https://github.com/objectbox/objectbox-java) and if needed the\n  [Kotlin extension functions](https://docs.objectbox.io/kotlin-support) library,\n- automatically adds runtime libraries for Android and the developer machine,\n- adds and configures the annotation processor to generate the model JSON file and source code like the `MyObjectBox`\n  and underscore classes (like `Example_`) used for [queries](https://docs.objectbox.io/queries),\n- for Android and Java JVM projects, registers a byte code transformer to \n  [make relations easier to use](https://docs.objectbox.io/relations#initialization-magic)\n\n## Minimum requirements to apply the plugin\n\n- Gradle `7.0` (see [GradleCompat](objectbox-gradle-plugin/src/main/kotlin/io/objectbox/gradle/util/GradleCompat.kt))\n- Android Plugin `4.1` (see [AndroidCompat](objectbox-gradle-plugin/src/main/kotlin/io/objectbox/gradle/util/AndroidCompat.kt))\n- JDK 8\n\n## Development\n\nThis project is known to build with JDK 17.\n\nThis repository contains a collection of Gradle subprojects:\n- `objectbox-gradle-plugin` provides the actual Gradle plugins (`io.objectbox` and `io.objectbox.sync`),\n- `objectbox-processor` provides an annotation processor,\n- `objectbox-generator` provides a source code generator used by the annotation processor,\n- `objectbox-code-modifier` provides model file (\"IdSync\") generation used by the annotation processor,\n  and byte-code transformers for Android and Java projects.\n  - Multiple `agp-wrapper-x-y` projects provide a compatibility layer for specific versions\n    of the Android Plugin API, currently for byte-code transforms only.\n\nAll are published as Maven artifacts (see `gradle` folder).\n                                                \n### Adding a new property type\n\nThis is a checklist on how to add support for a new property type:\n\n-  (Optional) Java: update generated Flatbuffers Java classes to add new `PropertyType`.\n-  Generator: add new generator `PropertyType` and map it to the Java API `PropertyType`.\n-  Processor: add a field with each new supported type to `SimpleEntity.java` (`SimpleEntityTest`).\n-  Processor: update to detect the new property types (also check if indexes should be prevented).\n  - Update the model expected by the test.\n-  Java API: add new collect methods to `Cursor.java`.\n-  Generator: update `PropertyCollector` to generate code using the new collect methods.\n  - Update the generated files expected by the test.\n- Java integration tests: add a field with the new type to `TestEntity.java`, update `BoxTest.java`.\n  - Java: update `TestEntity` and tests with code (incl. generated by the plugin) of integration tests.\n- Java: add additional tests as needed, e.g. query the new property.\n                     \n## License\n\n    ObjectBox Build Tools\n    Copyright (C) 2017-2025 ObjectBox Ltd.\n    \n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published\n    by the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n    \n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n    \n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\nNote that this license applies to the code in this repository only.\nThe build tools in this repository are not distributed with your application.\nSo their copyleft license has no impact on how you distribute your application.\nSee our website on details about all [licenses for ObjectBox components](https://objectbox.io/faq/#license-pricing).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobjectbox%2Fobjectbox-java-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobjectbox%2Fobjectbox-java-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobjectbox%2Fobjectbox-java-generator/lists"}