{"id":16380176,"url":"https://github.com/felixklauke/isabelle","last_synced_at":"2025-03-23T03:33:05.431Z","repository":{"id":44434175,"uuid":"142738554","full_name":"felixklauke/isabelle","owner":"felixklauke","description":"Integrating minecraft spigot servers plugin lifecycle into Netflix' Governators lifecycle extensions and provide an effective framework featuring dependency injection, configuration mapping and some general governator features for spigot plugins.","archived":false,"fork":false,"pushed_at":"2023-02-28T05:07:25.000Z","size":183,"stargazers_count":4,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-03-18T17:14:37.536Z","etag":null,"topics":["configuration-management","configuration-mapping","dependency-injection","governator","lifecycle-management","netflix","spigot","spigot-mc","spigot-plugins","spigot-server"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felixklauke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2018-07-29T07:02:13.000Z","updated_at":"2023-09-08T17:43:15.000Z","dependencies_parsed_at":"2024-10-28T15:23:59.947Z","dependency_job_id":"cd458a75-7735-4e1d-98e3-dff40607365a","html_url":"https://github.com/felixklauke/isabelle","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixklauke%2Fisabelle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixklauke%2Fisabelle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixklauke%2Fisabelle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixklauke%2Fisabelle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felixklauke","download_url":"https://codeload.github.com/felixklauke/isabelle/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245052656,"owners_count":20553162,"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-management","configuration-mapping","dependency-injection","governator","lifecycle-management","netflix","spigot","spigot-mc","spigot-plugins","spigot-server"],"created_at":"2024-10-11T03:50:38.790Z","updated_at":"2025-03-23T03:33:05.058Z","avatar_url":"https://github.com/felixklauke.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# isabelle\nIntegrating minecraft spigot servers plugin lifecycle into lifecycle extensions and provide an effective framework featuring dependency injection, configuration mapping and some general governator features for spigot plugins.\n\nIntegrations:\n1. [Theresa](https://github.com/FelixKlauke/theresa) - My own dependency injection framework based on Guice\n2. [Governator](https://github.com/Netflix/governator) - A dependency injection framework based on Google developed by Netflix. In maintenance mode and therefor deprecated.\n\n# Status\n|             \t| Build Status                                                                                                                                              \t| Test Code Coverage                                                                                                                                               \t|\n|-------------\t|-----------------------------------------------------------------------------------------------------------------------------------------------------------\t|------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| Master      \t| [![Build Status](https://travis-ci.org/FelixKlauke/isabelle.svg?branch=master)](https://travis-ci.org/FelixKlauke/isabelle) \t| [![codecov](https://codecov.io/gh/FelixKlauke/isabelle/branch/master/graph/badge.svg)](https://codecov.io/gh/FelixKlauke/isabelle) \t|\n| Development \t| [![Build Status](https://travis-ci.org/FelixKlauke/isabelle.svg?branch=dev)](https://travis-ci.org/FelixKlauke/isabelle)    \t| [![codecov](https://codecov.io/gh/FelixKlauke/isabelle/branch/dev/graph/badge.svg)](https://codecov.io/gh/FelixKlauke/isabelle)    \t|\n\n# Maven \u0026 Gradle\n\n**Maven Repositories**\n\n```xml\n\u003crepositories\u003e\n    \u003c!-- Klauke Enterprises Releases --\u003e\n    \u003crepository\u003e\n        \u003cid\u003eklauke-enterprises-maven-releases\u003c/id\u003e\n        \u003cname\u003eKlauke Enterprises Maven Releases\u003c/name\u003e\n        \u003curl\u003ehttps://repository.klauke-enterprises.com/repository/maven-releases/\u003c/url\u003e\n    \u003c/repository\u003e\n\t\n    \u003c!-- Klauke Enterprises Snapshots --\u003e\n    \u003crepository\u003e\n        \u003cid\u003eklauke-enterprises-maven-snapshots\u003c/id\u003e\n        \u003cname\u003eKlauke Enterprises Maven Snapshots\u003c/name\u003e\n        \u003curl\u003ehttps://repository.klauke-enterprises.com/repository/maven-snapshots/\u003c/url\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n**Maven dependencies**\n\n```xml\n\u003cdependency\u003e\n   \u003cgroupId\u003ede.d3adspace.isabelle\u003c/groupId\u003e\n   \u003cartifactId\u003eisabelle-spigot-governator\u003c/artifactId\u003e\n   \u003cversion\u003e1.2.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n# How it works\nIsabelle provides a single endpoint class called `IsabelleSpigotExtension`\n(`de.d3adspace.isabelle.spigot.governator.IsabelleSpigotExtension`). Instead of using the well known `JavaPlugin` you\njust have to extend our class and the magic begins. You can take a look at\nhttps://github.com/Isariel/laura/blob/dev/spigot/src/main/java/de/d3adspace/laura/spigot/extension/LauraSpigotExtension.java\nfor a full featured example but you can also do a quick start with our internal example.\n\n**Basic structure**:\n```java\npackage de.d3adspace.isabelle.spigot.plugin;\n\nimport de.d3adspace.isabelle.spigot.governator.IsabelleSpigotExtension;\n\nimport javax.annotation.PostConstruct;\nimport javax.annotation.PreDestroy;\nimport java.util.logging.Level;\n\n/**\n * @author Felix Klauke \u003cinfo@felix-klauke.de\u003e\n */\npublic class ExamplePlugin extends IsabelleSpigotExtension {\n\n    @PostConstruct\n    public void onPostConstruct() {\n        exampleService.executeAwesomeActions();\n\n        getLogger().log(Level.INFO, \"Entering post construction phase.\");\n    }\n\n    @PreDestroy\n    public void onPreDestroy() {\n\n        getLogger().log(Level.INFO, \"Entering pre deconstruction phase.\");\n    }\n}\n```\n\nYou can find the corresponding full example source here:\nhttps://github.com/FelixKlauke/isabelle/blob/dev/isabelle-spigot-governator-example/src/main/java/de/d3adspace/isabelle/spigot/plugin/ExamplePlugin.java\n\n**Depdendency Injection**:\nAs we use Governator/Theresa and Guice under the hood we have a powerful dependency injection mechanism.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixklauke%2Fisabelle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelixklauke%2Fisabelle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixklauke%2Fisabelle/lists"}