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
_______________________________________________
zanata-devel mailing list
zanata-devel@redhat.com
https://www.redhat.com/mailman/listinfo/zanata-devel

Reply via email to