Hi Alena, Patch B, I'm not quite familiar with java, so I have a little difficulty in following your recommendation. Can you send me an example using 'BaseInterface' and/or 'AccountInterface'? It will be very helpful and appreciated.
Patch A, To reduce the number of requests to the remote regions because the syncing is always using the api requests a lot to get information of domains/accounts/users from remote regions. And let me change the concatenation into using StringBuilder. Thanks a lot for your reply. Alex Ough On Thu, Mar 13, 2014 at 2:41 PM, Alena Prokharchyk < alena.prokharc...@citrix.com> wrote: > 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 > >>>>> > >>>>> > >>>> > >>> > >> > >