[jira] [Commented] (OAK-1513) Analyze the OSGi configuration PID used by various OSGi components in Oak
[ https://issues.apache.org/jira/browse/OAK-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13951256#comment-13951256 ] Tobias Bocanegra commented on OAK-1513: --- I would keep the PIDs in sync with the class names. but we could rename the class names, especially for those that are names *Impl. We should rename them to: Default or Oak... or something more descriptive or just remove the Impl. suggest the following renames (package stays the same): || Current || Proposed || | org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl | _no config_ | | org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl | _no config_ | | org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory | _keep_ | | org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler | _keep_ | | org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapIdentityProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService | _keep_ | | org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService | _keep_ | | org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider | _keep_ | | org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.itemsave.ItemSaveValidatorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.version.VersionEditorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.index.reference.ReferenceEditorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider | _keep_ | | org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider | _keep_ | | org.apache.jackrabbit.mk.osgi.MicroKernelService | _keep_ | | | | | org.apache.jackrabbit.oak.security.user.UserConfigurationImpl | UserConfiguration | | org.apache.jackrabbit.oak.security.authentication.token.TokenConfigurationImpl | TokenConfiguration | | org.apache.jackrabbit.oak.security.principal.PrincipalConfigurationImpl | PrincipalConfiguration | | org.apache.jackrabbit.oak.security.privilege.PrivilegeConfigurationImpl | PrivilegeConfiguration | | org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl | AuthenticationConfiguration | | org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl | AuthorizationConfiguration | | org.apache.jackrabbit.oak.security.SecurityProviderImpl | SecurityProvider | | org.apache.jackrabbit.oak.security.authorization.restriction.RestrictionProviderImpl | RestrictionProvider | I think that the various *Configuration classes in oak security are a bit misleading, as they are not purely configurations but factories or providers. Analyze the OSGi configuration PID used by various OSGi components in Oak - Key: OAK-1513 URL: https://issues.apache.org/jira/browse/OAK-1513 Project: Jackrabbit Oak Issue Type: Task Affects Versions: 0.17.1 Reporter: Chetan Mehrotra Assignee: Tobias Bocanegra Priority: Minor Fix For: 0.20 Oak makes use of OSGi configuration support for configuring its components. At times a component is annotated like {code:java} @Component public class AuthenticationConfigurationImpl extends ConfigurationBase implements AuthenticationConfiguration { {code} As per defaults maven-scr-plugin would use the Fully Qualified classname for the PID which in above case is {{org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl}}. To set custom PID specify it via name attribute of Component annotation As these config pid are to be referred in public docs and also they need to be supported in compatible way in future versions of Oak we should ensure that these names are proper and stable. Below are the details of various DS Components with classNames and PID. Someone of them might be exposing configuration and in those cases we need to see that PID used is proper # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl #* PID
[jira] [Commented] (OAK-1513) Analyze the OSGi configuration PID used by various OSGi components in Oak
[ https://issues.apache.org/jira/browse/OAK-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13951439#comment-13951439 ] angela commented on OAK-1513: - i don't like the proposed solution where the implementation has the same name as the interface. that's very confusion and i really don't see any benefit in this. so, -1 for the patch as it is right now. Analyze the OSGi configuration PID used by various OSGi components in Oak - Key: OAK-1513 URL: https://issues.apache.org/jira/browse/OAK-1513 Project: Jackrabbit Oak Issue Type: Task Affects Versions: 0.17.1 Reporter: Chetan Mehrotra Assignee: Tobias Bocanegra Priority: Minor Fix For: 0.20 Attachments: oak-1513-r1582862.patch Oak makes use of OSGi configuration support for configuring its components. At times a component is annotated like {code:java} @Component public class AuthenticationConfigurationImpl extends ConfigurationBase implements AuthenticationConfiguration { {code} As per defaults maven-scr-plugin would use the Fully Qualified classname for the PID which in above case is {{org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl}}. To set custom PID specify it via name attribute of Component annotation As these config pid are to be referred in public docs and also they need to be supported in compatible way in future versions of Oak we should ensure that these names are proper and stable. Below are the details of various DS Components with classNames and PID. Someone of them might be exposing configuration and in those cases we need to see that PID used is proper # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory #* Config Type -require # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler #* Config Type -require # org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapIdentityProvider #* PID -org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapIdentityProvider #* Config Type -require # org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider #* PID -org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider # org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService #* PID -org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService #* Config Type -require # org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider #* PID -org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider # org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService #* PID -org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService #* Config Type -require # org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider #* PID -org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider # org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider #* PID -org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider # org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider #* PID -org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider # org.apache.jackrabbit.oak.security.user.UserConfigurationImpl #* PID -org.apache.jackrabbit.oak.security.user.UserConfigurationImpl # org.apache.jackrabbit.oak.plugins.itemsave.ItemSaveValidatorProvider #* PID -org.apache.jackrabbit.oak.plugins.itemsave.ItemSaveValidatorProvider # org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider #* PID -org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider # org.apache.jackrabbit.oak.security.authentication.token.TokenConfigurationImpl #* PID -org.apache.jackrabbit.oak.security.authentication.token.TokenConfigurationImpl # org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider #* PID -org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider # org.apache.jackrabbit.oak.plugins.version.VersionEditorProvider #* PID -org.apache.jackrabbit.oak.plugins.version.VersionEditorProvider #
[jira] [Commented] (OAK-1513) Analyze the OSGi configuration PID used by various OSGi components in Oak
[ https://issues.apache.org/jira/browse/OAK-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13951530#comment-13951530 ] Tobias Bocanegra commented on OAK-1513: --- bq. apart from that: not sure if Default* is really better than Impl; Oak is IMO the worst as every implementation is somehow oakish. right :-) the main problem indeed is that the implementation has the same name as the interface and is confusing for the developer. so either the name of the interface or the implementation is unfortunate. the Impl is just a workaround for this issue, but so is Default as it also stipulates that this is the default implementation for a particular service, but there could be others. bq. I think that the various *Configuration classes in oak security are a bit misleading, as they are not purely configurations but factories or providers. for example the UserConfiguration has a method getUserManager() which in the default implementation actually creates a new user manager for the given session. IMO it would be better to name the interface UserManagement or UserManagementProvider. Analyze the OSGi configuration PID used by various OSGi components in Oak - Key: OAK-1513 URL: https://issues.apache.org/jira/browse/OAK-1513 Project: Jackrabbit Oak Issue Type: Task Affects Versions: 0.17.1 Reporter: Chetan Mehrotra Assignee: Tobias Bocanegra Priority: Minor Fix For: 0.20 Attachments: oak-1513-r1582862.patch Oak makes use of OSGi configuration support for configuring its components. At times a component is annotated like {code:java} @Component public class AuthenticationConfigurationImpl extends ConfigurationBase implements AuthenticationConfiguration { {code} As per defaults maven-scr-plugin would use the Fully Qualified classname for the PID which in above case is {{org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl}}. To set custom PID specify it via name attribute of Component annotation As these config pid are to be referred in public docs and also they need to be supported in compatible way in future versions of Oak we should ensure that these names are proper and stable. Below are the details of various DS Components with classNames and PID. Someone of them might be exposing configuration and in those cases we need to see that PID used is proper # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory #* Config Type -require # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl # org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler #* PID -org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler #* Config Type -require # org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapIdentityProvider #* PID -org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapIdentityProvider #* Config Type -require # org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider #* PID -org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider # org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService #* PID -org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService #* Config Type -require # org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider #* PID -org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider # org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService #* PID -org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService #* Config Type -require # org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider #* PID -org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider # org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider #* PID -org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider # org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider #* PID -org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider # org.apache.jackrabbit.oak.security.user.UserConfigurationImpl #* PID -org.apache.jackrabbit.oak.security.user.UserConfigurationImpl # org.apache.jackrabbit.oak.plugins.itemsave.ItemSaveValidatorProvider