Alex, I have some comments.

Patch B.

* You shouldn’t make your service a part of cloud-mom-rabbitmq plugin.
Your subscribers/implementation are specific to your feature, and you need
to introduce a special plugin just for your service.
* AccountInterface and BaseInterface are still regular classes. You should
split them into Service interface /ManagerImpl or Manager interface
/ManagerImpl as Chiradeep suggested.
* Once you extract services interfaces, make sure you don’t use VO objects
in methods signatures.
* You should really get a use of @Manager interface and @Inject
annotations for autowiring your managers instead of setting them up using
ComponentContext.getComponent() in each of your manager classes.



Patch A.

* AccountResponse. Why did you add domain path to the account response?
You can always retrieve it by a) get domain info from account response b)
execute listDomains&domainId to get the domain path. Try not to overload
the response with attributes that don’t belong to response’s first class
object.


Generic comments. 

* I can see that you do a lot of string concatenation this way: paramStr
+= "&email=" + email + "&firstname=" + firstName + "&lastname=" + lastName
+ "&accounttype=" + accountType;
I would suggest to use StringBuilder instead.




On 3/13/14, 9:33 AM, "Alex Ough" <alex.o...@sungard.com> wrote:

>Chiradeep,
>
>Any comments on them?
>
>Thanks
>Alex Ough
>
>
>On Wed, Mar 12, 2014 at 10:58 AM, Alex Ough <alex.o...@sungard.com> wrote:
>
>> And I also uploaded the patch B that includes new implementation to
>> support multi regions.
>>
>> Thanks
>> Alex Ough
>>
>>
>> On Wed, Mar 12, 2014 at 10:17 AM, Alex Ough <alex.o...@sungard.com>
>>wrote:
>>
>>> I uploaded the patch A that includes only core changes, so please
>>>review
>>> it and let me know if you have any comments.
>>>
>>> Thanks
>>> Alex Ough
>>>
>>>
>>> On Wed, Mar 12, 2014 at 8:24 AM, Alex Ough <alex.o...@sungard.com>
>>>wrote:
>>>
>>>> Hi Chiradeep,
>>>>
>>>> Can you give me the example of the Singleton service class you
>>>>mentioned?
>>>> I'm not sure if you are asking the name changes or else because those
>>>> classes are abstract classes and do not need to be singleton class.
>>>>
>>>> And let me try the refactoring and ask confirmations to you, so I
>>>>hope I
>>>> can get the reply soon.
>>>>
>>>> Thanks
>>>> Alex Ough
>>>>
>>>>
>>>> On Wed, Mar 12, 2014 at 4:13 AM, Daan Hoogland
>>>><daan.hoogl...@gmail.com>wrote:
>>>>
>>>>> H Alex, I considder Chiradeeps comments quite valid and serious
>>>>>enough
>>>>> to anticipate not making friday 14:00 CET. That would mean no merge
>>>>> before 4.4. Can you live with that?
>>>>>
>>>>> On Wed, Mar 12, 2014 at 6:40 AM, Chiradeep Vittal
>>>>> <chiradeep.vit...@citrix.com> wrote:
>>>>> > Hi Alex,
>>>>> >
>>>>> > If you look at the general design of CloudStack, there are
>>>>>Singleton
>>>>> > service interfaces which are then implemented with real classes.
>>>>>This
>>>>> > facilitates easy testing by mocking the interface. In your new
>>>>>files
>>>>> > (BaseInterface, which by the way is NOT an interface,
>>>>>AccountService,
>>>>> > which is NOT a service like other CloudStack services, and so on),
>>>>> this
>>>>> > design paradigm is not followed. Therefore it is incongruous to the
>>>>> rest
>>>>> > of the code base.
>>>>> >
>>>>> > Furthermore this has been plopped right in the middle of other core
>>>>> > CloudStack code (server/src/com/cloud/region/). If you look at the
>>>>> > EventBus logic, it has been written as a plugin, thereby enabling
>>>>> users
>>>>> > who do not need it to disable it. This level of configuration is
>>>>> needed
>>>>> > and I can't find it.
>>>>> >
>>>>> > So, to  summarize:
>>>>> > 1. Split it into patches. Patch A is the change to the core DAOs,
>>>>>db
>>>>> > logic, schema upgrade code, etc.
>>>>> > 2. Patch B is the actual sync service written as an optional plugin
>>>>> with
>>>>> > the package name space of org.apache.
>>>>> >
>>>>> > On 3/11/14, 3:09 PM, "Alex Ough" <alex.o...@sungard.com> wrote:
>>>>> >
>>>>> >>Hi Daan,
>>>>> >>
>>>>> >>I didn't update the patch after the couple of works because I
>>>>>wanted
>>>>> to do
>>>>> >>it with others Chiradeep asked if any.
>>>>> >>Let me know when you want me to.
>>>>> >>
>>>>> >>Thanks
>>>>> >>Alex Ough
>>>>> >>
>>>>> >>
>>>>> >>On Tue, Mar 11, 2014 at 4:37 PM, Daan Hoogland
>>>>> >><daan.hoogl...@gmail.com>wrote:
>>>>> >>
>>>>> >>> I will call the merge in a moment, but won't do it immediately.
>>>>> >>>
>>>>> >>> Be there for me when any issues come up. If not I will revert it.
>>>>> >>>
>>>>> >>> @Chiradeep: did Alex answer your concerns adequately?
>>>>> >>>
>>>>> >>>
>>>>> >>> kind regards,
>>>>> >>>
>>>>> >>> On Tue, Mar 11, 2014 at 6:43 PM, Alex Ough
>>>>><alex.o...@sungard.com>
>>>>> >>>wrote:
>>>>> >>> > I worked on a couple of items, so can you give me the
>>>>> confirmation for
>>>>> >>> the
>>>>> >>> > rest items so that I can wrap this up?
>>>>> >>> > I really want to include this into 4.4.
>>>>> >>> >
>>>>> >>> > Thanks
>>>>> >>> > Alex Ough
>>>>> >>> >
>>>>> >>> >
>>>>> >>> > On Mon, Mar 10, 2014 at 3:41 PM, Alex Ough
>>>>><alex.o...@sungard.com
>>>>> >
>>>>> >>> wrote:
>>>>> >>> >
>>>>> >>> >> Please see my reply/question in blue.
>>>>> >>> >>
>>>>> >>> >> Thanks
>>>>> >>> >> Alex Ough
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >> On Mon, Mar 10, 2014 at 1:25 PM, Chiradeep Vittal <
>>>>> >>> >> chiradeep.vit...@citrix.com> wrote:
>>>>> >>> >>
>>>>> >>> >>> I haven¹t looked at it because it is huge. But preliminary
>>>>>scan:
>>>>> >>> >>>
>>>>> >>> >>> - there are unit tests missing for changes to core CS code
>>>>> >>> >>>
>>>>> >>> >>          Unit tests for only new classes were added because I
>>>>> >>>couldn't
>>>>> >>> >> find unit tests of the ones I modified
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>> - uses com.amazonaws.util.json (why?)
>>>>> >>> >>>
>>>>> >>> >>          They are used to handle the json objects. Let me know
>>>>> if you
>>>>> >>> >> want me to replace it with another.
>>>>> >>> >>
>>>>> >>> >> - code format does not follow coding convention ( placement of
>>>>> {},
>>>>> >>>camel
>>>>> >>> >>> case api_interface )
>>>>> >>> >>>
>>>>> >>> >>          Done
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>> - package namespace is com.cloud instead of org.apache for
>>>>>new
>>>>> files
>>>>> >>> >>>
>>>>> >>> >>          I didn't know that. So do I need to use 'org.apache'
>>>>> package
>>>>> >>> for
>>>>> >>> >> all new classes?
>>>>> >>> >>
>>>>> >>> >> - no file-level comments. What does LocalAccountManager do?
>>>>>Why
>>>>> does
>>>>> >>>it
>>>>> >>> >>> exist? Etc.
>>>>> >>> >>>
>>>>> >>> >>          Done.
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>> - No interfaces, only abstract classes. No use of @Inject.
>>>>>While
>>>>> >>>this
>>>>> >>> >>> might be OK, it does make it harder to test and does not
>>>>>follow
>>>>> the
>>>>> >>> rest
>>>>> >>> >>> of ACS conventions.
>>>>> >>> >>>
>>>>> >>> >>         I don't think there is any interface, but let me know
>>>>>if
>>>>> you
>>>>> >>> find
>>>>> >>> >> any.
>>>>> >>> >>         Any recommendation to replace @inject?
>>>>> >>> >>
>>>>> >>> >>>
>>>>> >>> >>> I would urge the submitter to break up the submission.
>>>>> >>> >>> A) the changes to CS core, with explanations / comments and
>>>>> tests
>>>>> >>> >>> B) the sync service should be an interface with concrete
>>>>> >>> implementations
>>>>> >>> >>> in its own package
>>>>> >>> >>> C) more tests
>>>>> >>> >>>
>>>>> >>> >>         can you give me a little specific what kind of tests
>>>>>you
>>>>> need
>>>>> >>> >> more?
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>>  On 3/10/14, 3:37 AM, "Daan Hoogland"
>>>>><daan.hoogl...@gmail.com>
>>>>> >>>wrote:
>>>>> >>> >>>
>>>>> >>> >>> >Hi everyody,
>>>>> >>> >>> >
>>>>> >>> >>> >The people at sungard have been making this change for 4.4
>>>>>and
>>>>> I
>>>>> >>>want
>>>>> >>> >>> >to merge/apply it this week. It is more then a screenfull
>>>>>and
>>>>> might
>>>>> >>> >>> >cause issue is a setup or two.
>>>>> >>> >>> >
>>>>> >>> >>> >have a look at https://reviews.apache.org/r/17790/
>>>>> >>> >>> >
>>>>> >>> >>> >a ref to ticket and fs page are in the review request.
>>>>> >>> >>> >
>>>>> >>> >>> >kind regards,
>>>>> >>> >>> >--
>>>>> >>> >>> >Daan
>>>>> >>> >>>
>>>>> >>> >>>
>>>>> >>> >>>
>>>>> >>> >>
>>>>> >>>
>>>>> >>>
>>>>> >>>
>>>>> >>> --
>>>>> >>> Daan
>>>>> >>>
>>>>> >>>
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Daan
>>>>>
>>>>>
>>>>
>>>
>>

Reply via email to