Hi Eranda and All, Along with this effort, I would suggest (thinking ahead for Carbon-5), we should clearly define the registry API's first, and have a minimal registry implementation at kernel and move other core registry parts (app, synchronization, client) to components level and make registry at kernel a light weight one.
Thanks, Kishanthan. On Wed, Nov 6, 2013 at 8:52 AM, Eranda Sooriyabandara <[email protected]>wrote: > Hi Azeez, > > > On Wed, Nov 6, 2013 at 8:44 AM, Afkham Azeez <[email protected]> wrote: > >> >> >> >> On Wed, Nov 6, 2013 at 8:37 AM, Eranda Sooriyabandara <[email protected]>wrote: >> >>> Hi Azeez, >>> >>> >>> On Wed, Nov 6, 2013 at 8:28 AM, Afkham Azeez <[email protected]> wrote: >>> >>>> Rather than removing registry.api, start cleaning it up & use it. In >>>> 2010, we introduced registry.api & user-api, with a view to getting all >>>> future code to properly use those APIs, and stop using interfaces from >>>> registry.core & user.core. >>>> >>> >>> The problem we have here is that we have same interfaces in >>> registry.api.* as well as registry.core.* which is quite confusing for a >>> user, where registry.api.* has less method descriptions which are in use. >>> So you are suggesting that we need to move all the interfaces to >>> registry.api.*, yes that can be done but as I mentioned before it will >>> affect all the components, stubs features and the effort will be high. >>> >> >> Yeah, effort will be high. It has not gotten done over the past 3 years >> because the effort was going to be high. Make a choice: keep maintaining & >> adding to an ugly API with implementation leaked all over it, or make an >> effort to define a well thought out clean API separate from the >> implementation, and get all components to depend on the registry >> implementation details. >> > > I think it's time to do this re-factoring. > Thanks for the input. > > thanks > Eranda > > >> >> >>> >>> thanks >>> Eranda >>> >>> >>>> >>>> I am -1 on removing this >>>> >>>> Azeez >>>> >>>> >>>> On Tue, Nov 5, 2013 at 6:07 PM, Eranda Sooriyabandara >>>> <[email protected]>wrote: >>>> >>>>> Hi All, >>>>> Interfaces and classes in org.wso2.carbon.registry.api.* are almost >>>>> all duplicated [1] in org.wso2.carbon.registry.core.*. It's been very >>>>> confusing to have same interface in two place where both of those >>>>> interfaces used for the same purpose. Most of the time we >>>>> used org.wso2.carbon.registry.core.* for in our code as well as client >>>>> codes where we only updated org.wso2.carbon.registry.core.* for the new >>>>> methods. I did some feasibility study of removing >>>>> org.wso2.carbon.registry.api.* and seems it's ok for me to remove that if >>>>> we don't have any specific reason to remove it. >>>>> >>>>> Or >>>>> >>>>> We can move the interfaces and abstract classes to >>>>> the org.wso2.carbon.registry.api.*. But the work load will be much higher. >>>>> >>>>> Comments and thoughts are welcome. >>>>> >>>>> thanks >>>>> Eranda >>>>> >>>>> [1]. Comparison of org.wso2.carbon.registry.api.* to >>>>> org.wso2.carbon.registry.core.* >>>>> >>>>> org.wso2.carbon.registry.core.LogEntry extends >>>>> org.wso2.carbon.registry.api.Activity >>>>> org.wso2.carbon.registry.api.Activity only used in >>>>> org.wso2.carbon.registry.core.LogEntry >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> >>>>> org.wso2.carbon.registry.core.Association extends >>>>> org.wso2.carbon.registry.api.Association >>>>> org.wso2.carbon.registry.api.Association only used in >>>>> org.wso2.carbon.registry.core.Association >>>>> This class only has the super construct call >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> >>>>> <<interface>>org.wso2.carbon.registry.core.Collection extends >>>>> <<interface>>org.wso2.carbon.registry.api.Collection >>>>> org.wso2.carbon.registry.api.Collection only used in >>>>> org.wso2.carbon.registry.core.Collection >>>>> All org.wso2.carbon.registry.api.Collection methods are overridden >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> >>>>> org.wso2.carbon.registry.core.Comment implements >>>>> org.wso2.carbon.registry.api.Comment >>>>> Need to move this to org.wso2.carbon.registry.core and rename the >>>>> existing implementation to CommentImpl >>>>> >>>>> org.wso2.carbon.registry.api.CoreRegistry extends >>>>> org.wso2.carbon.registry.core.CoreRegistry >>>>> both are same interface >>>>> org.wso2.carbon.registry.api.CoreRegistry only used in >>>>> org.wso2.carbon.registry.core.CoreRegistry >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> >>>>> org.wso2.carbon.registry.api.GhostResource<T> only appears in >>>>> org.wso2.carbon.registry.api >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> org.wso2.carbon.registry.core.Registry extends >>>>> org.wso2.carbon.registry.api.Registry >>>>> >>>>> org.wso2.carbon.registry.core.Registry extended methods >>>>> >>>>> boolean addAspect(String name, Aspect aspect) >>>>> LogEntryCollection getLogCollection(String resourcePath, int action, >>>>> String userName, Date from, Date to, boolean recentFirst) >>>>> RegistryContext getRegistryContext() >>>>> void invokeAspect(String resourcePath, String aspectName, String >>>>> action, Map<String,String> parameters) >>>>> boolean removeAspect(String aspect) >>>>> boolean removeVersionHistory(String path, long snapshotId) >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> org.wso2.carbon.registry.api.RegistryException extends >>>>> org.wso2.carbon.registry.core.RegistryException >>>>> both are same the same >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> org.wso2.carbon.registry.core.RegistryService extends >>>>> org.wso2.carbon.registry.api.RegistryService >>>>> org.wso2.carbon.registry.api.RegistryService used in >>>>> RegistryCoreServiceComponent to register the RegistryService >>>>> org.wso2.carbon.registry.core.RegistryService uses UserRegistry >>>>> instead of Registry as in org.wso2.carbon.registry.api.RegistryService >>>>> >>>>> org.wso2.carbon.registry.core.RegistryService extended methods >>>>> org.wso2.carbon.user.core.UserRealm getUserRealm(int tenantId) >>>>> >>>>> Remove deprecated in org.wso2.carbon.registry.core.RegistryService >>>>> >>>>> UserRegistry getSystemRegistry() --- Deprecated. >>>>> UserRegistry getSystemRegistry(int tenantId) --- Deprecated. >>>>> UserRegistry getSystemRegistry(int tenantId, String chroot) --- >>>>> Deprecated. >>>>> UserRegistry getUserRegistry() --- Deprecated. >>>>> UserRegistry getUserRegistry(String userName) --- Deprecated. >>>>> UserRegistry getUserRegistry(String userName, int tenantId) --- >>>>> Deprecated. >>>>> UserRegistry getUserRegistry(String userName, int tenantId, String >>>>> chroot) --- Deprecated. >>>>> UserRegistry getUserRegistry(String userName, String password) --- >>>>> Deprecated. >>>>> UserRegistry getUserRegistry(String userName, String password, int >>>>> tenantId) --- Deprecated. >>>>> UserRegistry getUserRegistry(String userName, String password, int >>>>> tenantId, String chroot) --- Deprecated. >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> <<interface>>org.wso2.carbon.registry.core.Resource extends >>>>> <<interface>>org.wso2.carbon.registry.api.Resource >>>>> both the interfaces are the same >>>>> Has lot of usages of org.wso2.carbon.registry.api.Resource in >>>>> org.wso2.carbon.registry.core >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> org.wso2.carbon.registry.core.Tag extends >>>>> org.wso2.carbon.registry.api.Tag >>>>> org.wso2.carbon.registry.core.Tag override the method 'public void >>>>> setTagCount(long tagCount)' >>>>> org.wso2.carbon.registry.api.Tag only used in >>>>> org.wso2.carbon.registry.core.Tag and >>>>> org.wso2.carbon.registry.core.TaggedResourcePath but not used >>>>> 'setTagCount' >>>>> method. >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> org.wso2.carbon.registry.core.TaggedResourcePath extends >>>>> org.wso2.carbon.registry.api.TaggedResourcePath >>>>> org.wso2.carbon.registry.api.TaggedResourcePath Only used in >>>>> org.wso2.carbon.registry.core.TaggedResourcePath >>>>> >>>>> -- >>>>> >>>>> *Eranda Sooriyabandara *Senior Software Engineer; >>>>> Integration Technologies Team; >>>>> WSO2 Inc.; http://wso2.com >>>>> Lean . Enterprise . Middleware >>>>> >>>>> E-mail: eranda AT wso2.com >>>>> Mobile: +94 716 472 816 >>>>> Linked-In: http://www.linkedin.com/in/erandasooriyabandara >>>>> Blog: http://emsooriyabandara.blogspot.com/ >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> [email protected] >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Afkham Azeez* >>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>> Member; Apache Software Foundation; http://www.apache.org/ >>>> * <http://www.apache.org/>* >>>> *email: **[email protected]* <[email protected]> >>>> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: * >>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>> *twitter: >>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>> * linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>> >>>> >>>> *Lean . Enterprise . Middleware* >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> [email protected] >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> >>> -- >>> >>> *Eranda Sooriyabandara*Senior Software Engineer; >>> Integration Technologies Team; >>> WSO2 Inc.; http://wso2.com >>> Lean . Enterprise . Middleware >>> >>> E-mail: eranda AT wso2.com >>> Mobile: +94 716 472 816 >>> Linked-In: http://www.linkedin.com/in/erandasooriyabandara >>> Blog: http://emsooriyabandara.blogspot.com/ >>> >>> >>> >>> >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> *Afkham Azeez* >> Director of Architecture; WSO2, Inc.; http://wso2.com >> Member; Apache Software Foundation; http://www.apache.org/ >> * <http://www.apache.org/>* >> *email: **[email protected]* <[email protected]> >> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: * >> *http://blog.afkham.org* <http://blog.afkham.org> >> *twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >> * linked-in: **http://lk.linkedin.com/in/afkhamazeez >> <http://lk.linkedin.com/in/afkhamazeez>* >> >> *Lean . Enterprise . Middleware* >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > > *Eranda Sooriyabandara*Senior Software Engineer; > Integration Technologies Team; > WSO2 Inc.; http://wso2.com > Lean . Enterprise . Middleware > > E-mail: eranda AT wso2.com > Mobile: +94 716 472 816 > Linked-In: http://www.linkedin.com/in/erandasooriyabandara > Blog: http://emsooriyabandara.blogspot.com/ > > > > > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- *Kishanthan Thangarajah* Senior Software Engineer, Platform Technologies Team, WSO2, Inc. lean.enterprise.middleware Mobile - +94773426635 Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>* Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
