The core module currently contains many parts of syncope. This makes it bigger and more complex than necessary.
A possible modularization is to move the internal model (org.apache.syncope.core.persistence*) and the persistence impl (org.apache.syncope.core.persistence.impl) out of core and into separate modules.
One big advantage would be that the jpa code enhancements would then run in the model module only. Currently we run into some problems in the cxf migration when running the rest itests in core that may be caused by eclipse overwriting the enhanced classes with plain classes. If the model (peristence) classes are in a separate module we could leave it out of eclipse and so this would be no issue anymore.
Another advantage would be that the persistence tests could run in the persistence impl module so when working on the core they would not have to run each time.