On 01/05/2013 12:51 AM, Alex Huang wrote:
I propose that we use the MERGE tag for any branch merging.  I've changed this 
subject as such.

Chip also raised some issues in another thread.  Let's try to merge them on to 
this discussion.  Please raise again if this doesn't answer your questions.

I like to add some things to what Kelven has talked about here.

- Item 1 touch a great deal of of CloudStack 4.0 code but problems will rise 
very quickly and the fixes should be small.  Basically if the server can't come 
up during our test, this doesn't work.  So we will make sure that server is up 
and running the automated tests before merging.
- For items 2, 3, 4, we were worried about the effect extended changes would 
have on the CloudStack 4.0 code so what we've done are as follows:
        - A new set of subdirectories:
                - framework - for any work in ipc/jobs/event notification.
                - engine - for any work in storage refactoring and vm 
orchestration refactoring

My concern is with the current CLVM and RBD code. This has to be (partially) re-written for the Javelin branch.

I don't want it to become blockers for the 4.1 release, but I'm not sure if I'll have sufficient time to re-implement that code and make sure it all works properly for the end of January (when the RC should come out, right?)

Wido

                - services - for any services build on top of framework and 
engine but currently there are none.
        - We have minimized changes in the CloudStack 4.0 code to appropriately 
call out to engine libraries but no in place changes to logic.  For example, 
none of the old code has been changed to use the new ipc mechanism.
        - The code changes in engine have their own unit tests.  I will let 
Edison and Prachi talk about that.  Until the unit tests have worked out, we do 
not swap out code from the CloudStack 4.0 code.

For the merge, we will do the following:
- Wait for the api-refactoring merge.
- Pull in all master changes and make sure the unit tests are all running or 
have been appropriately changed to run.
- Make sure automated testing is running against the new server.
- Merge back into master.

--Alex

-----Original Message-----
From: Kelven Yang [mailto:kelven.y...@citrix.com]
Sent: Friday, January 04, 2013 3:13 PM
To: cloudstack-dev@incubator.apache.org
Subject: [PROPOSAL] Merge Javelin branch into master

I'm proposing another branch merge after API-refactoring branch, to merge
javelin branch into the main stream. Javelin branch contains a number of
architecture refactoring efforts,

1. Adopting Spring Framework for dependency injection of CloudStack
internal components
2. IPC framework for inter component communications
3. Storage subsystem refactoring
4. CloudStack Orchestration Engine refactoring

Majorities of the new refactoring work are independent of existing
CloudStack components, therefore merging these independent newly
developed
components should not have a big impact to existing code base. The major
impact of this merge will be on #1, as it touches almost every component
in the existing code base, DAOs, Adapters, Managers, etc. In order to
seamlessly replace our existing ComponentLocator with Spring injection
framework. We've done following refactoring to existing code base.

1) Remove all un-necessary runtime bindings to ComponentLocator at Daos,
Managers, Adapters, etc
2) Using standard javax @Inject to replace with customized
com.cloud.utils.component.Inject
3) Using Spring AOP to support @DB semantics
4) Separate component loading and initializing to avoid inter-leaving
dependencies between Spring bootstrap loader and CloudStack run-time
business logic.
5) Move CloudStack bootstrap logic out of ComponentLocator to the
initialization process at business logic layer

The plan of performing such merge will be, we will first pull the latest
master content into javelin branch, complete the merge at javelin branch
and commit it into master after certain level of testing. The goal is to
make existing code works as before but will drop in newly add-ons of
refactoring work.

Kelven

Reply via email to