Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/h0tk3y/plugin-support-task
https://github.com/h0tk3y/plugin-support-task
education homework kotlin mp3 plugin
Last synced: 9 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/h0tk3y/plugin-support-task
- Owner: h0tk3y
- Created: 2019-11-17T18:38:36.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-03-01T07:54:52.000Z (over 2 years ago)
- Last Synced: 2024-10-08T13:09:32.512Z (30 days ago)
- Topics: education, homework, kotlin, mp3, plugin
- Language: Kotlin
- Size: 928 KB
- Stars: 0
- Watchers: 3
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Plugin support
Перед вами музыкальный плеер с поддержкой плагинов.
Задачи:
* Дополните реализацию `MusicApp` кодом для загрузки плагинов и управления их жизненным циклом.
* Изучите KDoc (комментарии с документацией) к имеющимся типам. Контракты описаны в документации.
* Плагины должны загружаться в раздельных class loader'ах, дочерних по отношению к загрузчику самого приложения.
На каждый `MusicPluginPath` – по одному загрузчику классов.
* Творческая часть: напишите свой плагин (или плагины)
* Можно реализовать один плагин с интересной функциональностью, которую можно найти в популярных плеерах
(как `UsageStatsPlugin`).
А можно реализовать несколько несложных плагинов, которые взаимодействуют друг с другом и предоставляют
"точки расширения" для других плагинов (как `ConsoleControlsPlugin` + `ConsoleHandlerPlugin` +
`BasicConsoleControlsPlugin`). Во втором случае общие интерфейсы можно добавить в главный модуль,
чтобы они оказались в родительском загрузчике и были видны всем плагинам.
* Хотя бы один написанный плагин должен поставляться отдельным модулем
* Посмотрите, как оформлен `third-party-plugin`, и добавьте новый модуль таким же образом. Обратите внимание на
свойство `third-party-plugin-file` и то, как оно задаётся в разных случаях.
* Напишите тесты для новых плагинов.
* Требование: программа должна запускаться (и работать корректно) в том числе из "дистрибутива", который можно собрать с помощью
`./gradlew installDist`. Собранный "дистрибутив" можно найти по пути `build/install/plugin-support-hw` и запустить из
него `./plugin-support-hw` (в UNIX-подобных ОС) или `plugin-support-hw.bat` (Windows). Если программе
нужны дополнительные ресурсы, настройте их упаковку в `bulid.gradle.kts` в секции `application {
distributions { ... } }`