{"action":"created","issue":{"url":"https://api.github.com/repos/burningrain/planetBot/issues/7","repository_url":"https://api.github.com/repos/burningrain/planetBot","labels_url":"https://api.github.com/repos/burningrain/planetBot/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/burningrain/planetBot/issues/7/comments","events_url":"https://api.github.com/repos/burningrain/planetBot/issues/7/events","html_url":"https://github.com/burningrain/planetBot/issues/7","id":182712521,"number":7,"title":"UiSharedState","user":{"login":"burningrain","id":6791853,"avatar_url":"https://avatars.githubusercontent.com/u/6791853?v=3","gravatar_id":"","url":"https://api.github.com/users/burningrain","html_url":"https://github.com/burningrain","followers_url":"https://api.github.com/users/burningrain/followers","following_url":"https://api.github.com/users/burningrain/following{/other_user}","gists_url":"https://api.github.com/users/burningrain/gists{/gist_id}","starred_url":"https://api.github.com/users/burningrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/burningrain/subscriptions","organizations_url":"https://api.github.com/users/burningrain/orgs","repos_url":"https://api.github.com/users/burningrain/repos","events_url":"https://api.github.com/users/burningrain/events{/privacy}","received_events_url":"https://api.github.com/users/burningrain/received_events","type":"User","site_admin":false},"labels":[{"id":120312464,"url":"https://api.github.com/repos/burningrain/planetBot/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-10-13T07:12:11Z","updated_at":"2016-11-05T16:27:23Z","closed_at":null,"body":"Для согласования состояний ui-plugin-ов помимо отправки событий возникнут моменты, когда будет необходимо сохранять состояние, которое необходимо передавать между различными ui-plugin-ами. Предполагается решать эту проблему с помощью еще одного модуля (н-р, назовем его SharedState), через который будет происходить чтение/запись некоторых ui-данных.\n\nТребования:\n- изменение в ui-plugin-е не должно требовать пересборки этого модуля (SharedState)\n- возможность перелезть на другую бд нам не важна. ui-plugin-ы не будут использоваться в недесктопной версии приложения (по причине тесной связи с javafx-классами).\n- завязывать модели на этот модуль строго не рекомендуется.\n\nРешение:\nЭто означает, что решения типа jooq не подходят. Предпочтительна разработка от бизнес-логики, а не базы.  Также это означает, что по причине слабой, но зависимости ui-plugin-ов друг от друга (сильную не делаем, чтобы один плагин не вешал другой) между ними может возникать несочетаемость. Это тоже надо учитывать при разработке ui-plugin-а.\n1) Новые entity будут подкладываться к SharedState через osgi-fragments, и находиться в пакете с конкретно-заданном названием\n2) Накатка базы create-update происходит каждый раз при старте модуля SharedState. Модуль находит все entity в конкретном пакете и по ним накатывает бд.\n3) Наружу выставляется api, которое скрывает часть работы с бд. Т.е. все entity и часть функционала для запросов.\n\nНеобходимо рассмотреть за и против в плане: \n- реляционное решение: \"hibernate+h2/hypersonic\"  или подобное\n- нереляционное:       \"Xodus от JetBrains\"                   или подобное\n"},"comment":{"url":"https://api.github.com/repos/burningrain/planetBot/issues/comments/258622501","html_url":"https://github.com/burningrain/planetBot/issues/7#issuecomment-258622501","issue_url":"https://api.github.com/repos/burningrain/planetBot/issues/7","id":258622501,"user":{"login":"mrzo0m","id":5229264,"avatar_url":"https://avatars.githubusercontent.com/u/5229264?v=3","gravatar_id":"","url":"https://api.github.com/users/mrzo0m","html_url":"https://github.com/mrzo0m","followers_url":"https://api.github.com/users/mrzo0m/followers","following_url":"https://api.github.com/users/mrzo0m/following{/other_user}","gists_url":"https://api.github.com/users/mrzo0m/gists{/gist_id}","starred_url":"https://api.github.com/users/mrzo0m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrzo0m/subscriptions","organizations_url":"https://api.github.com/users/mrzo0m/orgs","repos_url":"https://api.github.com/users/mrzo0m/repos","events_url":"https://api.github.com/users/mrzo0m/events{/privacy}","received_events_url":"https://api.github.com/users/mrzo0m/received_events","type":"User","site_admin":false},"created_at":"2016-11-05T16:27:23Z","updated_at":"2016-11-05T16:27:23Z","body":"В этом варианте логика не предполагается, тут только состояние атрибут UI. Без возможности фильтрации. UI State -> POJO + ID -> STORE ;  ID -> STORE -> POJO -> UI State"}}
{"actor":{"display_login":"mrzo0m"}}