{"action":"created","issue":{"url":"https://api.github.com/repos/brianchandotcom/liferay-portal/issues/30757","labels_url":"https://api.github.com/repos/brianchandotcom/liferay-portal/issues/30757/labels{/name}","comments_url":"https://api.github.com/repos/brianchandotcom/liferay-portal/issues/30757/comments","events_url":"https://api.github.com/repos/brianchandotcom/liferay-portal/issues/30757/events","html_url":"https://github.com/brianchandotcom/liferay-portal/pull/30757","id":109750704,"number":30757,"title":"LPS-58680 Annotate WikiGroupServiceConfiguration","user":{"login":"izaera","id":3273630,"avatar_url":"https://avatars.githubusercontent.com/u/3273630?v=3","gravatar_id":"","url":"https://api.github.com/users/izaera","html_url":"https://github.com/izaera","followers_url":"https://api.github.com/users/izaera/followers","following_url":"https://api.github.com/users/izaera/following{/other_user}","gists_url":"https://api.github.com/users/izaera/gists{/gist_id}","starred_url":"https://api.github.com/users/izaera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/izaera/subscriptions","organizations_url":"https://api.github.com/users/izaera/orgs","repos_url":"https://api.github.com/users/izaera/repos","events_url":"https://api.github.com/users/izaera/events{/privacy}","received_events_url":"https://api.github.com/users/izaera/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-10-05T08:22:01Z","updated_at":"2015-10-07T08:08:13Z","closed_at":"2015-10-06T22:31:26Z","pull_request":{"url":"https://api.github.com/repos/brianchandotcom/liferay-portal/pulls/30757","html_url":"https://github.com/brianchandotcom/liferay-portal/pull/30757","diff_url":"https://github.com/brianchandotcom/liferay-portal/pull/30757.diff","patch_url":"https://github.com/brianchandotcom/liferay-portal/pull/30757.patch"},"body":"/CC: @JorgeFerrer @rotty3000\r\n\r\nHi Brian:\r\n\r\nThis is a PR to define an ExtendedMetaTypeService that wraps OSGi's standard MetaTypeService. Its future use is to rely on it to be able to tweak our Configuration Admin to fit our needs (for example: intelligent fields that are automagically populated, typed fields like localized values or dates, and so on).\r\n\r\nThis PR defines and implements the service based on Equinox and on runtime annotations. In the end we will use Equinox, but with the annotations implementation we are able to continue development based on this, until we finally integrate BND 3 into the build (which is not so easy right now).\r\n\r\nThe last commit is an example of how it would be used to group configurations by category. It may be not pushed if you don't want to, but it won't do any harm if it is.\r\n\r\nPlease tell me what do you think or if you find something you don't like.\r\n\r\nCheers,\r\nIvan"},"comment":{"url":"https://api.github.com/repos/brianchandotcom/liferay-portal/issues/comments/146109010","html_url":"https://github.com/brianchandotcom/liferay-portal/pull/30757#issuecomment-146109010","issue_url":"https://api.github.com/repos/brianchandotcom/liferay-portal/issues/30757","id":146109010,"user":{"login":"izaera","id":3273630,"avatar_url":"https://avatars.githubusercontent.com/u/3273630?v=3","gravatar_id":"","url":"https://api.github.com/users/izaera","html_url":"https://github.com/izaera","followers_url":"https://api.github.com/users/izaera/followers","following_url":"https://api.github.com/users/izaera/following{/other_user}","gists_url":"https://api.github.com/users/izaera/gists{/gist_id}","starred_url":"https://api.github.com/users/izaera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/izaera/subscriptions","organizations_url":"https://api.github.com/users/izaera/orgs","repos_url":"https://api.github.com/users/izaera/repos","events_url":"https://api.github.com/users/izaera/events{/privacy}","received_events_url":"https://api.github.com/users/izaera/received_events","type":"User","site_admin":false},"created_at":"2015-10-07T08:08:13Z","updated_at":"2015-10-07T08:08:13Z","body":"@brianchandotcom:\r\n\r\n> 1.) Do you have the XSD for http://www.liferay.com/xsd/meta-type-hints_7_0_0 ?\r\n\r\nNo. Is it really needed? The XML will always be generated by BND so I'm not sure if anyone will need to validate it in the future. But I will take a look at it.\r\n\r\n> 2.) Did you comment out ExtendedMetaTypeService on purpose in EquinoxExtendedMetaTypeService?\r\n\r\nYes. It is commented out so that we fallback on AnnotationsExtendedMetaTypeService until we fix the BND 3 issues. After BND 3 is integrated in the build we can get rid of AnnotationsExtendedMetaTypeService and uncomment EquinoxExtendedMetaTypeService.\r\n\r\n> 3.) Should constants in ConfigurationAdmin be moved to a constants class inside a .constants. package?\r\n\r\nNot sure. I really prefer to have them nested in ConfigurationAdmin as they won't be shared by any other class and they logically belong to it. I think that what leads you to confusion is the fact that I'm using `http://www.liferay.com/xsd/meta-type-hints_7_0_0` as namespace, when it should be something like `http://www.liferay.com/xsd/configuration-admin/meta-type-hints_7_0_0` or similar (one XSD per annotation class, not one for the whole Liferay). Is that the real problem?\r\n\r\n>I would also prefix the constant keys because it's not obvious how they are grouped together.\r\n>i.e. TYPE_X and TYPE_Y, STATUS_A and STATUS_B\r\n\r\nOK."}}