Ontwikkel handleiding

Dit project gebruikt Maven als build tool en Github voor broncode beheer.

PROXY
Een aantal van de maven commando's heeft internet toegang nodig, het kan zijn dat je hiervoor http of https proxy configuratie gegevens moet aangeven op de commando regel.
-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<poort> -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<poort>

bijvoorbeeld: mvn -Popenlayers -Dhttp.proxyHost=145.12.1.11 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=145.12.1.11 -Dhttps.proxyPort=8080 site

Broncode ophalen

De broncode is opgeslagen in het Github systeem. De toegang is beschreven in het Source Repository document.

  git clone https://github.com/MinELenI/CBSviewer.git C:\workspace\CBSviewer

Beginnen met bouwen

Het project gebruikt Maven 3 als build tool, als IDE raden we Eclipse 4.2 aan omdat deze de beste Maven integratie heeft. Het project is opgezet als een war artifact. Voor het maken van een .war of release is alleen een juist geconfigureerde Maven installatie nodig.

Om de ontwikkelomgeving op te zetten is het nodig om een build van OpenLayers te maken, dit gaat met onderstaand commando:

mvn -Popenlayers,developer

Hiermee wordt een debug versie van OpenLayers in de broncode ondergebracht, een compacte versie voor de webapp en een volledige versie voor de unit tests. De OpenLayers build configuratie is vastgelegd in het bestand /OL-build.cfg.

Naast een Maven installatie zijn de volgende tools nodig:

Graphviz
te verkrijgen via http://www.graphviz.org/Download.php
Python 2.7.x
te verkrijgen via http://www.python.org/getit/

Deze tools dienen in het pad te worden opgenomen zodat ze vanuit de werkdirectory opgestart kunnen worden.

Java 8

Vanwege een aangescherpt beveiligingsmodel in Java 8 mislukt het genereren van de XML bindings met JAXB, om dit te omzeilen gebruik je een extra commandoregel/omgevings parameter:

-Djavax.xml.accessExternalSchema=file 

code conventies en formatting

Voor formatting van de Javascript code wordt het Eclipse profiel gebruikt zoals dat te vinden is in de ide/ directory. Voor het generaren van de api documentatie wordt de jsdoc3 tool gebruikt, deze kent een groot aantal tags.

Voor formatting van de Java code wordt het Eclipse profiel gebruikt zoals dat te vinden is in de ide/ directory.

Unit testen

Java

Er wordt gebruik gemaakt van JUnit 4 tests, tests worden uitgevoerd als onderdeel van de normale bouw cyclus. Losse tests kunnen met onderstaand commando worden gedraaid:

mvn -Dtest=<klassenaam> test

Javascript

Er wordt gebruik gemaakt van het http://pivotal.github.com/jasmine/ framework. De code voor een unit test gaat in /src/test/js/jasmine/. Tests worden automatisch gedraaid in een HtmlUnit en/of PhantomJS runtime tijdens de test fase van Maven.

Om unit tests met de hand te draaien zijn tijdens het ontwikkelen kan het jasmineserver profiel worden gebruikt.

mvn -Pjasmineserver jasmine:bdd

Start de tests op: http://localhost:8234/, de pagina kan worden geladen in een browser naar keuze.

Applicatie testen

De applicatie kan lokaal gebouwd en gerund worden met behulp van Jetty

mvn -Pdeveloper jetty:run

Jetty start een webserver op op poort 8021 met de applicatie in de root. Voor meer informatie over de Jetty runtime plugin: Jetty Maven Plugin in de Eclipse wiki.

Documentatie genereren

Met Maven kan een site worden gemaakt met het commando:

mvn site

Tijdens het maken van de site worden ook de unit en integratie tests gedraaid (er vindt dus een volledige build plaats!). Voor het genereren van de klasse diagrammen is een lokale installatie van dot en/of Graphviz nodig.

Documentatie uploaden

De documentatie kan "met de hand" naar de Github website worden overgedragen, hiervoor is authenticatie nodig. Normaal gesproken zorgt de build server voor het bijwerken van de online documentatie.

mvn site-deploy -Dgithub.username=<login> -Dgithub.password=<passwd>  

De website staat dan op: http://mineleni.github.io/CBSviewer/