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? Regards, Andrei.
