Version | Dato | Beskrivelse | Forfatter |
1 | 21-06-2016 | Første version, udarbejdet med udgangspunkt i Udviklingsvejledning for SOSIGW 1.0 | OBJ |
2 | 12-11-2020 | Opdatering 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 | Indeholder kildekode samt statisk konfiguration og andre ressource-filer |
src/test/java | Indeholder unit- og integrationstests |
|
|
doc/ | Indeholder al dokumentation på nær Javadoc, som kan genereres via ant javadoc. |
etc/ | 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. |
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. |
| |
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.