+1 to this plan. Also +1 for Christian's points about getting low risk refactoring into 1.1.0.
How about we do a JIRA triage for 1.1.0? Currently we have 21 open tasks for this version. I volunteer for the following tasks: https://issues.apache.org/jira/browse/SYNCOPE-198 https://issues.apache.org/jira/browse/SYNCOPE-123 https://issues.apache.org/jira/browse/SYNCOPE-215 Colm. On Thu, Dec 20, 2012 at 11:05 PM, Andrei Shakirin <ashaki...@talend.com>wrote: > Hi Francesco, > > > I guess you have already shared this plan with Jan - I would expect that > since > > most of issues mentioned above are assigned to him as "in charge" > > of this CXF refactoring as discussed in this mailing list [1]. > > Yep, we have created this plan together with Jan and Christian and would > like to discuss/align it with Syncope community. > > > Correct me if I am wrong, but the whole idea is to not directly merge the > > current CXF branch [2] into the trunk, but to keep it for a while as a > "source > > of refactoring" for modifications to be applied to the trunk. > > Correct. CXF branch is basically just POC. Perhaps we will reuse some code > from there, but more important for migration is principles and approaches > there. > > > Once most of such modifications are in place into the trunk, making it > still > > running Spring MVC but with all ingredients ready for CXF, a proper 'cxf- > > migration' branch will be created. > > Correct. > > > The purpose of this second branch will be to remove any residual Spring > MVC > > dependency / code / configuration and to empower CXF for the REST > > interface, in all components (including the admin console, of course). > > Yep. And of course resolve possible problems, makes all tests green. > > > > > When ready, this 'cxf-migration' branch will me merged into the trunk and > > disappear. > > Correct. > > > This fact would push a 1.1.0 release, but if we do so, I don't see as > particularly > > clean adding 'useless' dependencies and code (the ready-to-run-but-not- > > yet-running CXF stuff) to a new release. > > I see your point. > > > Hence my proposal: let's take a look at issues still open for 1.1.0 [4], > do some > > pruning by moving any non strictly necessary or complex issue to > > 1.2.0 and do release 1.1.0. > > In my opinion, we should be able to complete this at most before the end > of > > January. > > > > At that point, with trunk set to 1.2.0-SNAPSHOT, we can start with the > plan > > you propose above. > > WDYT? > > Personally I agree with your arguments. Perhaps in this case it makes > sense for us to start preparations before end of January (not in trunk). > Then steps (a) - (e) will be committed to 1.2.0-SNAPSHOT trunk as soon as > 1.1.0 will be released. > Would like to hear opinions from others as well. > > Cheers, > Andrei. > > > -----Original Message----- > > From: Francesco Chicchiriccò [mailto:ilgro...@apache.org] > > Sent: Donnerstag, 20. Dezember 2012 17:09 > > To: dev@syncope.apache.org > > Subject: Re: CXF REST migration plan > > > > On 20/12/2012 16:44, Andrei Shakirin wrote: > > > Hi, > > > > > > We just finished CXF migration POC for users and roles: it is > successful and > > we approximately know how much efforts we need for complete migration. > > > I would like to discuss the steps we are going to do for complete > migration > > in next year. > > > > > > > > > 1. Prerequisites > > > > > > a) Finishing persistence refactoring > > (https://issues.apache.org/jira/browse/SYNCOPE-241, > > https://issues.apache.org/jira/browse/SYNCOPE-242 ) > > > > > > b) Resolve ConnId CXF dependencies problem > > (https://issues.apache.org/jira/browse/SYNCOPE-251 ) > > > > > > > > > > > > 2. Steps > > > > > > a) Introduce interfaces for all controllers in > > org.apache.syncope.core.rest.controller (the same way as for user and > role > > in cxf branch). Interfaces will contain JAX-RS annotations. Commit > interfaces > > to trunk > > > > > > b) Provide temporary implementation of interfaces (step a) for > "old" > > spring based rest implementation (based on spring restTemplate). Commit > > implementations to trunk > > > > > > c) Refactor core rest integration tests to use controller > interfaces instead > > restTemplate. All rest tests must be successful. Commit refactored tests > to > > trunk. This step helps to prepare tests to be used with CXF without > breaking > > them > > > > > > d) Add CXF dependencies, CXF Rest service configuration, exception > > mappers and jaxb/json providers, but do not activate them. Commit them to > > trunk > > > > > > e) Update TO classes for JAXB marshalling (if necessary) and keep > spring > > marshalling working with the same TO classes. Commit it to trunk. If > keeping > > JAXB marshalling parallel to spring is too complicate, this step will > be done in > > cxf-migration branch after step (f) > > > > > > f) Create cxf-migration branch > > > > > > g) Activate using CXF Rest for controller interfaces instead > temporary > > spring based implementation created on step (b). Fix possible problems > > > > > > h) Update console to use CXF Rest. Fix possible problems > > > > > > i) Merge cxf-migration branch with trunk > > > > > > Our idea is to keep cxf-migration branch possibly short time, split > migration > > on some small steps and keep the tests and whole system running in > > between. > > > Does this plan make sense? Any other suggestions / ideas? > > > > Hi Andrei, > > I guess you have already shared this plan with Jan - I would expect that > since > > most of issues mentioned above are assigned to him as "in charge" > > of this CXF refactoring as discussed in this mailing list [1]. > > > > Correct me if I am wrong, but the whole idea is to not directly merge the > > current CXF branch [2] into the trunk, but to keep it for a while as a > "source > > of refactoring" for modifications to be applied to the trunk. > > > > Once most of such modifications are in place into the trunk, making it > still > > running Spring MVC but with all ingredients ready for CXF, a proper 'cxf- > > migration' branch will be created. > > The purpose of this second branch will be to remove any residual Spring > MVC > > dependency / code / configuration and to empower CXF for the REST > > interface, in all components (including the admin console, of course). > > > > When ready, this 'cxf-migration' branch will me merged into the trunk and > > disappear. > > > > Is this correct? > > > > ===== > > > > Generally speaking, this plan makes sense to me. > > Only, I am a bit concerned about timing, especially considering that the > > current trunk is already full of new features (compared to 1_0_X) [3]. > > > > This fact would push a 1.1.0 release, but if we do so, I don't see as > particularly > > clean adding 'useless' dependencies and code (the ready-to-run-but-not- > > yet-running CXF stuff) to a new release. > > > > Hence my proposal: let's take a look at issues still open for 1.1.0 [4], > do some > > pruning by moving any non strictly necessary or complex issue to > > 1.2.0 and do release 1.1.0. > > In my opinion, we should be able to complete this at most before the end > of > > January. > > > > At that point, with trunk set to 1.2.0-SNAPSHOT, we can start with the > plan > > you propose above. > > > > WDYT? > > > > [1] http://markmail.org/message/jgxe5tt47l636wc3 > > [2] https://svn.apache.org/repos/asf/syncope/branches/cxf > > [3] > > https://issues.apache.org/jira/issues/?jql=project+%3D+SYNCOPE+AND+fix > > Version+%3D+%221.1.0%22+AND+status+%3D+Resolved+ORDER+BY+priorit > > y+DESC > > [4] > > https://issues.apache.org/jira/issues/?jql=project%20%3D%20SYNCOPE%20 > > AND%20fixVersion%20%3D%20%221.1.0%22%20AND%20status%20%3D%20 > > Open%20ORDER%20BY%20priority%20DESC > > > > -- > > Francesco Chicchiriccò > > > > ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member > > http://people.apache.org/~ilgrosso/ > > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com