SOSIGW

Udviklingsvejledning for SOSIGW 1.0


Indeks


Indeks
Revisionshistorik
Indledning
Forudsætninger
Afhængigheder
SOSI-GW
Projektstruktur
Releases
Tests

Side 1 af 4

Version

Dato

Ansvarlig

Kommentarer

1

09-10-2009

jre

Initiel version

2

14-09-2011

tgk

Tilføjet script til nsp-release


Revisionshistorik

Version

Dato

Ændring

Ansvarlig

1

09/10/2009

Initiel version af dokument

jre

2

14/09/2011

Tilføjet script til nsp-release

tgk


Indledning

Dette dokument beskriver hvordan man kommer i gang med at tilpasse eller videreudvikle SOSI-GW ud fra kildeteksten.

Forudsætninger

Der forudsættes erfaring med java-udvikling og brug af open source projekter. Læs også installationsvejledningen, der godt nok er rettet mod drift og test, men hvis beskrivelse af teknisk setup ikke gentages her.

Afhængigheder

SOSI-GW afhænger af en lang række af andre open source projekter. Til at styre disse afhængigheder benyttes "Ivy", som er et ant-plugin (se {+}http://ant.apache.org/ivy+[ |http://ant.apache.org/ivy]for mere information). Konfiguration af ivy og basal build-struktur hentes fra projektet
"trifork-common", som er inkluderet i SOSI-GW-projektet. Det forventes at der findes java (>= 1.5.0) og ant (>= 1.7.0) i omgivelsen.

SOSI-GW

SOSI-GW projektet ligger på softwarebørsens svn-repository på følgende adresse:
{+}https://svn.softwareborsen.dk/sosi+-gw/[ |https://svn.softwareborsen.dk/sosi-gw/]
Environmentvariablen "JAVA_HOME" skal være sat og pege på det jdk, der svarer til den java, der er den aktive. Det er ikke tilstrækkeligt med et JRE. (Eksempel: export
JAVA_HOME=/usr/lib/jvm/java-6-sun)
Udfør "ant" i projektet. Dette henter en hel række open source projekter fra nettet og bygger projektet. Herefter kan Eclipse åbne projektet, med alle dependencies på deres rette plads. Bemærk, at hvis projektet åbnes i Eclipse før ant er kørt, vil der være fejl i projektet. Disse fejl forsvinder efter ant er kørt.
På T4 er det under udvikling behageligt at benytte "Inplace-deployment", som betyder at T4 udfører det kode, ens editor kompilerer for en, uden at skulle redeploye eller genstarte serveren. Dette gøres ved at aktivere "autorestart" på den systemcontainer, der deployes til, og deploye "sosig.map" med "-inplace" fremfor at deploye "target/sosigw.war".

Projektstruktur

SOSIGW-projektet er et Eclipse-projekt, og har følgende struktur:
src/ indeholder kildekode samt statisk konfiguration og andre ressource-filer
test/ indeholder unit- og integrationstests
performance/ indeholder JMeter performancetests
doc/ indeholder al dokumentation på nær Javadoc, som kan genereres via ant javadoc. De primære filer er odt-filerne, pdffilerne kan potentielt være uddaterede.
etc/ indeholder filer, der anvendes i forbindelse med byggeprocessen, fx XML-skemaer- WSDL-filer mv.
launch/ indeholder launchere, der kan anvendes i forbindelse med udvikling af GWT i Hosted Mode 
lib/ indeholder de jarfiler, projektet benytter sig af. Bemærk at dette bibliotek laves automatisk af ant, og det skal ikke ligge i Subversion
target/ indeholder alt der genereres i forbindelse med byggeprocessen, dvs kompilerede filer, genererede source-filer og andre artefakter. Dette dir skal heller ikke ligge i Subversion.
trifork-common/ indeholder et basalt byggemiljø baseret på Ant og Ivy. 
vendor/ indeholder dokumentation på nogle af de 3.parts-jarfiler der anvendes.
web/ indeholder de filer, der skal pakkes med i den færdige war-fil på nær class- og jar-filer
ixy.xml beskriver projektets afhængigheder. 
ChangeLog beskriver hvilke ændringer, der er sket i de forskellige versioner.

Releases

Et nyt release laves ved først at opdatere ChangeLog-filen med ændringerne fra sidste release. Herefter checkes det at projektet kan bygges og at alle tests kører uden fejl. Herefter køres release.sh med det nye versionsnummer som argument, fx ./release.sh 1.0.5. Hvis der releases til nsp køres scriptet nsp-relsease.sh, ligeledes med versionsnummer.
Udvikles der under Windows kan release foretages manuelt med følgende trin:
Lav en svn update for at sikre, at den seneste version er hentet.
Lav et nyt tag i SVN baseret på trunk, der hedder vx.y.z hvor x.y.z er det nye versionsnummer.
Kør ant clean
Pak projektet til en tar.gz-fil, der hedder sosigw-x.y.x.tar.gz
Placer denne fil i svn under releases
Kør ant for at bygge en war-fil
Omdøb war-filen (som ligger under target) til sosigw-x.y.z.war
Placer war-filen sammen med tar.gz-filen i svn

Tests

Unit- og integrationstests er placeret under test/, og følger den samme pakkestruktur som de klasser der testes. Der anvendes normal Junit 3 til at implementere tests.
Tests kan køres på to måder: Enten via ant (ant test) eller via Eclipse. I Eclipse højreklikkes på test og under Run As vælges Unit Test.
Så vidt muligt navngives testmetoder efter deres hensigt – dvs fx testConditionShouldBeTrue() i stedet for test1().
Når tests køres via ant laves der desuden coverage måling via Clover. Coveragerapporter kan genereres med ant coverage-report, som derefter kan findes under target/coverage.

  • No labels