Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootSOSI-GW - Leverancebeskrivelse
includeroottrue


Table of Contents

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

Code Block
languagebash
mvn install

Docker

Koden kan afvikles lokalt med kommandoen

Code Block
languagebash
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

Code Block
languagebash
maven release:prepare

Tests

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

Code Block
languagebash
mvn test

Integrationstests er endnu ikke flyttet til maven.