Version

Dato

Beskrivelse

Forfatter

1

21-06-2016

Første version, udarbejdet med udgangspunkt i Udviklingsvejledning for SOSIGW 1.0

OBJ

212-11-2020Opdatering da koden er flyttet og der nu bygges vha. Maven og Docker.Thomas

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 afhængigheder og byg af WAR fil bruges maven.

SOSI-GW

SOSI-GW projektet ligger på nspop svn-repository på følgende adresse: https://svn.nspop.dk/svn/components/sosigw/trunk/

Projektstruktur

SOSIGW-projektet er et Eclipse-projekt, og har følgende struktur:

src/main/java
src/main/resources

Indeholder kildekode samt statisk konfiguration og andre ressource-filer

src/test/java
src/test/resources

Indeholder unit- og integrationstests

performance/

Indeholder JMeter performancetests

doc/

Indeholder al dokumentation på nær Javadoc, som kan genereres via ant javadoc.

etc/
etc-legacy/

Indeholder filer, der anvendes i forbindelse med byggeprocessen, f.eks. XML-skemaer- WSDL-filer mv.

Etc-legacy indeholder filer, som er flyttet med fra forrige kodebase. Og som evt. kan slettes ved næste release.

launch/

Indeholder launchere, der kan anvendes i forbindelse med udvikling af GWT i Hosted Mode

build-lib/

Indeholder de jarfiler, projektet benytter sig af. De jar filer som projektet har afhængigheder til  findes i diverse maven repositories.
I build-lib findes jar-filer, som vi ikke pt. kan finde i maven repositories. Derfor indkluderes de i maven ved at pege på en lokal kopi.

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.

src/main/webapp/Indeholder de filer, der skal pakkes med i den færdige war-fil på nær class- og jar-filer
ChangeLog Beskriver hvilke ændringer, der er sket i de forskellige versioner.

Maven

Koden kan bygges med kommandoen

mvn install

Docker

Koden kan afvikles lokalt med kommandoen

docker-compose -f compose/development/docker-compose.yml up --build

Jenkins

Koden kan bygges vha. Jenkins

https://jenkins.nspop.dk/job/SOSIGW/

Og man kan også pushe byg til Nexus.

Releases

Når koden skal releases, så skal man første have tjekket alle rettelser ind på trunk. Derefter skal man afvikles kommandoen

maven release:prepare

Tests

Unittest afvikles når koden bygges med maven kommando. Man kan også afvikles selvstændigt med kommandoen

mvn test

Integrationstests er endnu ikke flyttet til maven.

  • No labels