Hi,
following up the geotools-devel thread on speeding up the build, I’ve made some checks on
GeoServer as well.
Compared to GeoTools the build takes longer because, among other reasons, it parallelizes a lot less.
The “chain of death” keeping the build in low parallel mode is, roughly:
main->wfs->wms->restconfig->app-schema-test
The main module takes here 1:20, and everything else depends on it. A large chunk of that time is
spent running security related tests.
I’m only semi serious here, but as far as I can see, it could be beneficial to move the securty
tests to their own module (e.g., security/core) while leaving the security classes in main.
I’m just semi-serious because I realize splitting apart the classes and their tests is not that great,
but at the same time, it could easily shave off 30-60 seconds off the critical path.
The WMS dependency onto WFS is hard to un-tangle, I’ve tried already some years ago and
eventually gave up, it would require its own mini-sprint imho… so off the board for this discussion.
Restconfig is where things get interesting and actually doable in a relatively short time.
Restconfig is a slow module to build, and has to wait onto all core OGC services to be built, but it
does not have to be that way: I propose we split the service support part into a small per service
module, e.g.:
- gs-restconfig-wfs
- gs-restconfig-wms
- gs-restconfig-wcs
- gs-restconfig-wps (missing today, no way to configure WPS from REST)
- gs-restconfig-csw (missing today, no way to configure CSW from REST)
Basically gs-restconfig would contain the core abstract service controller class, and the “one class modules”
would add the templates, extra code, and tests (side effect, we’d make the service rest configuration
actually pluggable).
There are also 4-5 a few tests hitting the OGC services as part of the tests, those could also be moved
to the service specific restconfig module.
This way the main gs-restconfig module could start building as soon as gs-main has completed.
The other module that should be split imho is the app-schema-test one, in the current build, and
on my current machine, it runs alone for 55 seconds after any other module has terminated building.
The reason being that it depends on too many things, wfs, wms, restconfig.
I believe the module mostly does WFS tests with a few WMS and I believe just one REST test, so can
we split it into three parts that can start running as soon as their dependencies are made available?
- app-schema-wfs-test
- app-schema-wms-test
- app-schema-rest-test
Cheers
Andrea
···
==
GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information.
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.