From sflaniga at redhat.com Fri Aug 4 07:58:17 2017 From: sflaniga at redhat.com (Sean Flanigan) Date: Fri, 4 Aug 2017 17:58:17 +1000 Subject: [zanata-devel] Finally! The zanata-war split - with a dependency graph Message-ID: Now that https://github.com/zanata/zanata-platform/pull/425 ( https://zanata.atlassian.net/browse/ZNTA-181) has been merged, the server dependencies have changed to be a bit more modular. Among other benefits, this should allow local builds to run faster, because the code which lived in zanata-war can now be compiled and somewhat tested in parallel with frontend and gwt-editor. And now you only need to build frontend and gwt-editor if you are running integration or functional tests. The most important thing: *all the src/main/java code from zanata-war now lives in services.jar* (new). This includes REST services, JSF action classes, GWT-RPC services and DAOs. If you're writing new code for Zanata server, there's a good chance it belongs here now, at least until we split up services.jar! Secondly, *some of the src/main/java code from gwt-editor has moved to gwt-shared.jar *(new) - mostly GWT DTOs and the validators for the editor, ie the package org.zanata.webtrans.shared. (gwt-editor still has client code, in the package org.zanata.webtrans.client.) This allows services.jar just to depend on gwt-shared without bringing in all of gwt-editor. The module 'zanata-war' still has some test code, mostly Arquillian integration tests and one GWT integration test (CDI-Unit). The unit tests in zanata-war have moved, either to gwt-editor, gwt-shared or services, to be near the classes they test. There are also a couple of small new modules which hold test-related code and test fixture data: gwt-test and zanata-model-test. This was the best way I could find to satisfy both Maven and IntelliJ, without bringing lots of unwanted test classes and persistence.xml files. I hope this change will make builds a bit more pleasant for all of us. But let me know if something is up! Here is the fancy graph, thanks to maven-graph-plugin: [image: Inline images 2] If you want to generate and view the dependency graph yourself, you'll need to install xdot: dnf install python-xdot To build the module graph for zanata-war: cd server mvn -Dgraph.target=target/reactor.dot -Dinclude-group-ids=org.zanata -Dhide-external -Dhide-group-id -Dhide-type -Dhide-version org.fusesource.mvnplugins:maven-graph-plugin:1.39:reactor -pl zanata-war -am && xdot target/reactor.dot -- Sean Flanigan Principal Software Engineer Globalisation Tools Engineering Red Hat -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: zanata-war-dependencies-with-test.png Type: image/png Size: 58696 bytes Desc: not available URL: