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

Reply via email to