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
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:
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
Principal Software Engineer
Globalisation Tools Engineering
zanata-devel mailing list