Hi,
On 06/12/12 16:59, Francesco Chicchiriccò wrote:
On 06/12/2012 09:35, Christian Schneider wrote:
Hi Syncope team,
my name is Christian Schneider and I am working together with Jan
Bernhard on the CXF migration of Syncope.
We sometimes have problems running the rest itests in the core project
from eclipse. When looking into the reasons we found that eclipse
sometimes seems to overwrite the enhanced jpa classes with plain ones.
I thought about how to solve this and found that it may be a good idea
to split the persistence model and persistence impl out of core and into
two separate modules.
See: https://issues.apache.org/jira/browse/SYNCOPE-241
So what do you think about this idea? Does it make sense or are there
some good reasons to keep these packages in the core?
Hi Christian, and thanks for your interest in Syncope!
I think that this refactoring proposal is really needed now that the
core code has started becoming too much big to be manageable in a single
module; since I am not using Eclipse, I've never run into this kind of
issues, but I am glad that this made you think such refactoring.
The only important aspect I'd like to stress out here is to preserve all
the current core build profiles:
* dev - starts Tomcat with core deployed and configured with test
data: useful for rapid development and / or to execute a single
integration test
* jrebel - similar to dev, with JRebel features enabled
* oracle-it / postgres-it / sqlserver-it / mysql-it - perform the
whole test suite against these DBMS (these profiles will probably
need to be duplicated in order to perform unit tests on the
persistence module and integration tests in the REST module)
* noopworkflow - perform integration tests using the non-default empty
workflow adapter (default is Activiti-based)
* glassfish-it / jboss-it / weblogic-it - perform all the integration
tests by deploying the core module into the given JEE container (we
will also need to create something similar for OSGi / Karaf, I
guess, in the near future)
Perhaps having TomEE+ considered in the future would also be of interest
given that their team has integrated CXF in - so Syncope can work very
naturally there, just a thought
Thanks, Sergey
While analysing how to do this split I found that there are a lot of
dependency cycles in core. Especially the ones between persistence and
impl impede moving out these packages. So if we agree to move the
persistence we first have to solve the dependency cycles. I have added
another issue to track this:
https://issues.apache.org/jira/browse/SYNCOPE-242
The good thing is that it looks worse than it is. I experimented with
some ways to eliminate the cycles and am pretty sure I can do it.
This is also very interesting, in the direction of improving the overall
code organization and quality: very cool.
Jan told me that Francesco is working on a refactoring of the role
code. So
I would in any case wait till he has finished his work.
I'll do my best to commit any pending change before the end of week, but
since I am currently very busy with other activities, I might delay
until Monday or even Tuesday.
Regards.