Skip to content

Commit 646547a

Browse files
authored
EY-4385: Flytt tjenestespesifikasjoner inn i dette repoet (#328)
* EY-4328: Tar bort unødig import * Tar bort konfig som ikkje slår til, og som uansett er definert også i pluginane * Vi genererer ikkje java-kode, så tar bort konfigen for det * cutterslade-analyze-pluginen har vi ikkje brukt dei siste par åra, iallfall, så da klarer vi oss nok utan han også framover * Oppdaterer syntaks for å spesifisere kompileringsversjon * Flyttar deklareringa av kotlin-versjon, fint å ha alt av versjonering i build-filene * Tar plugin-buildsrc-konfig for common-modulen inn i common. Per no er det det einaste biblioteket vi har her, vi har ingen umiddelbare planar om å ta inn fleire (som er gradle-konfigurert), så da er det fint å ha det samla, så kan vi heller generalisere igjen ved behov * Tweakar litt på kva som byggjast når, sånn at vi kan bruke Gradle configuration cache også her * Bruker setup gradle-action, som er tilrådd frå Gradle-teamet, heller enn setup java-actionen for caching. Skrur med det samme på Gradle configuration cache for byggejobbane * Slår samna readme-ene ordentleg * EY-4385: Tar med readme-en frå tjenestespesifikasjoner * EY-4385: Kopierer over frå pensjon-etterlatte-tjenestespesifikasjoner-repoet. Ganske rått kopiert, men tilpassar bygge-workflowen litt * Code scanning-analyse også for tjenestespesifikasjoner * Vanleg bygg for tjenestespesifikasjoner * Fiksar byggejobb for tjenestespesifikasjoner
1 parent 2ca46cd commit 646547a

File tree

33 files changed

+4274
-1
lines changed

33 files changed

+4274
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: bygg-tjenestespesifikasjoner
2+
3+
on:
4+
workflow_dispatch: # Allow manually triggered workflow run
5+
push:
6+
branches:
7+
- '**'
8+
paths:
9+
- tjenestespesifikasjoner/**
10+
pull_request:
11+
branches:
12+
- main
13+
paths:
14+
- tjenestespesifikasjoner/**
15+
16+
jobs:
17+
build:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
- name: Set up Java
22+
uses: actions/setup-java@v4
23+
with:
24+
distribution: temurin
25+
java-version: 21
26+
cache: maven
27+
- name: Build with Maven
28+
run: mvn -f tjenestespesifikasjoner -B install

.github/workflows/codeql.yml

+37-1
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,40 @@ jobs:
7373
- name: Perform CodeQL Analysis
7474
uses: github/codeql-action/analyze@v3
7575
with:
76-
category: "/language:javascript"
76+
category: "/language:javascript"
77+
78+
tjenestespesifikasjoner:
79+
name: Analyze Java (Kotlin)
80+
runs-on:
81+
labels: ubuntu-latest
82+
timeout-minutes: 360
83+
permissions:
84+
actions: read
85+
contents: read
86+
security-events: write
87+
steps:
88+
- name: Checkout repository
89+
uses: actions/checkout@v4
90+
91+
# Initializes the CodeQL tools for scanning.
92+
- name: Initialize CodeQL
93+
uses: github/codeql-action/init@v3
94+
with:
95+
languages: java
96+
queries: security-and-quality
97+
98+
- name: Set up JDK
99+
uses: actions/setup-java@v4
100+
with:
101+
distribution: temurin
102+
java-version: 21
103+
104+
- name: Build with Maven
105+
run: mvn -f tjenestespesifikasjoner -B install
106+
env:
107+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
108+
109+
- name: Perform CodeQL Analysis
110+
uses: github/codeql-action/analyze@v3
111+
with:
112+
category: "/language:java"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Release (Github Package Registry)
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
8+
jobs:
9+
release:
10+
name: Create Release
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
packages: write
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
- name: Set release tag
19+
run: |
20+
COMMIT_COUNT=$(git rev-list --all --count)
21+
TAG_NAME="$(echo $GITHUB_SHA | cut -c1-7)"
22+
echo "RELEASE_TAG=tjenestespesifikasjoner-${COMMIT_COUNT}.${TAG_NAME}" >> $GITHUB_ENV
23+
- name: Set changelog
24+
# (Escape newlines see https://github.com/actions/create-release/issues/25)
25+
run: |
26+
text="$(git --no-pager log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%h %s")"
27+
text="${text//$'%'/%25}"
28+
text="${text//$'\n'/%0A}"
29+
text="${text//$'\r'/%0D}"
30+
echo "CHANGELOG=$text" >> $GITHUB_ENV
31+
32+
- name: Set up Java
33+
uses: actions/setup-java@v4
34+
with:
35+
distribution: temurin
36+
java-version: 21
37+
cache: maven
38+
- name: Deploy artifacts to github maven repository
39+
env:
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
run: |
42+
mvn -f tjenestespesifikasjoner -B versions:set -DnewVersion="$RELEASE_TAG"
43+
mvn -f tjenestespesifikasjoner -B versions:commit
44+
echo "Running release"
45+
mvn -f tjenestespesifikasjoner -B --settings maven-settings.xml deploy -Dmaven.wagon.http.pool=false
46+
47+
- name: Create Release
48+
id: create_release
49+
uses: actions/create-release@latest
50+
env:
51+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52+
with:
53+
tag_name: ${{ env.RELEASE_TAG }}
54+
release_name: ${{ env.RELEASE_TAG }}
55+
body: |
56+
Changes in this Release
57+
58+
${{ env.CHANGELOG }}
59+
draft: false
60+
prerelease: false

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ out/
1111
node_modules/
1212
yarn-error.log
1313
/apps/journalfoer-soeknad/pdf.pdf
14+
target/
1415

1516
**/cypress/videos/
1617
**/cypress/screenshots/

README.md

+56
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,62 @@ Konfigurasjon av slackbot for teamet.
3939
- [common](common)
4040

4141

42+
# Tjenestespesifikasjoner
43+
44+
Dette repoet inneholder tjenestespesifikasjoner for de tjenestene som NAV tilbyr internt, og som vi bruker i Team Etterlatte.
45+
Dette er flytta over fra [pensjon-etterlatte-tjenestespesifiksajoner](https://github.com/navikt/pensjon-etterlatte-tjenestespesifikasjoner)-repoet.
46+
47+
De er maskinlesbare i form av WSDL/XSD/JSON-filer, og disse brukes som utgangspunkt for å
48+
generere Javakode. Denne autogenererte koden blir kompilert og siden publisert, slik at konsumenter
49+
kan bruke dem til å kommunisere med tjenestene.
50+
51+
### Gradle
52+
```
53+
repositories {
54+
maven { url 'https://jitpack.io' }
55+
}
56+
57+
dependencies {
58+
implementation 'com.github.navikt:pensjon-etterlatte-felles:navn-på-modul:Tag'
59+
}
60+
```
61+
62+
### Maven
63+
```
64+
<repositories>
65+
<repository>
66+
<id>jitpack.io</id>
67+
<url>https://jitpack.io</url>
68+
</repository>
69+
</repositories>
70+
71+
<dependency>
72+
<groupId>com.github.navikt.pensjon-etterlatte-felles</groupId>
73+
<artifactId>navn-på-modul</artifactId>
74+
<version>Tag</version>
75+
</dependency>
76+
```
77+
78+
79+
## Bygging
80+
Koden bruker Jakarta-navnerommet, og forutsetter Java nyere enn 8.
81+
82+
`mvn install`
83+
84+
## Gjøre endringer, release
85+
86+
For å endre spesifikasjoner, lag en branch. Kjør bygget lokalt, da vil du
87+
få siste endringer med `1-SNAPSHOT` som versjon. Test med en konsument at
88+
endringene fungerer (sett versjon av tjenestespesifikasjoner til `0-SNAPSHOT` i konsumenten.)
89+
Når testingen er ferdig, send en pull request til dette repoet.
90+
91+
Hver branch og pull request vil gå gjennom et CI-bygg.
92+
Etter at en pull request er merget til main-branchen, vil
93+
CI automatisk gjøre en release av hele repoet til Maven Central.
94+
Alle modulene i dette repoet får samme versjonsnummer.
95+
Versjonsnummeret til releasen blir `1.YYYY.MM.DD-HH-MM-commithash`.
96+
---
97+
4298
# Kom i gang
4399

44100
Common-biblioteket i prosjektet blir released til Github Package Registry som krever autentisering. For å ta dem i bruk som dependencies i et annet prosjekt er det enkleste er å lage et [PAT (Personal Access Token)](https://github.com/settings/tokens).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2+
3+
<parent>
4+
<groupId>no.nav.etterlatte.tjenestespesifikasjoner</groupId>
5+
<artifactId>tjenestespesifikasjoner</artifactId>
6+
<version>0-SNAPSHOT</version>
7+
</parent>
8+
<modelVersion>4.0.0</modelVersion>
9+
<artifactId>avstemming-v1-tjenestespesifikasjon</artifactId>
10+
<packaging>jar</packaging>
11+
<version>0-SNAPSHOT</version>
12+
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.sun.xml.ws</groupId>
16+
<artifactId>jaxws-rt</artifactId>
17+
</dependency>
18+
</dependencies>
19+
20+
<properties>
21+
<wsdl.directory>src/main/wsdl</wsdl.directory>
22+
</properties>
23+
<build>
24+
<plugins>
25+
<plugin>
26+
<groupId>com.sun.xml.ws</groupId>
27+
<artifactId>jaxws-maven-plugin</artifactId>
28+
<executions>
29+
<execution>
30+
<id>wsdl-to-java</id>
31+
<goals>
32+
<goal>wsimport</goal>
33+
</goals>
34+
<configuration>
35+
<wsdlFiles>
36+
<wsdlFile>no/nav/virksomhet/tjenester/avstemming/v1/Binding.wsdl</wsdlFile>
37+
</wsdlFiles>
38+
<wsdlDirectory>${wsdl.directory}</wsdlDirectory>
39+
<sourceDestDir>target/generated-sources</sourceDestDir>
40+
</configuration>
41+
</execution>
42+
</executions>
43+
</plugin>
44+
<plugin>
45+
<artifactId>maven-source-plugin</artifactId>
46+
<executions>
47+
<execution>
48+
<id>include-sources</id>
49+
<goals>
50+
<goal>jar</goal>
51+
</goals>
52+
</execution>
53+
</executions>
54+
</plugin>
55+
</plugins>
56+
<resources>
57+
<resource>
58+
<directory>src/main/resources</directory>
59+
</resource>
60+
<resource>
61+
<directory>${wsdl.directory}</directory>
62+
<targetPath>wsdl</targetPath>
63+
</resource>
64+
</resources>
65+
</build>
66+
<name>${project.artifactId}</name>
67+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="avstemming" targetNamespace="http://nav.no/virksomhet/tjenester/avstemming/v1" xmlns:tns="http://nav.no/virksomhet/tjenester/avstemming/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
2+
<wsdl:types>
3+
<xsd:schema targetNamespace="http://nav.no/virksomhet/tjenester/avstemming/v1" xmlns:kad="http://nav.no/virksomhet/tjenester/avstemming/informasjon/konsistensavstemmingsdata/v1" xmlns:meldinger="http://nav.no/virksomhet/tjenester/avstemming/meldinger/v1">
4+
<xsd:import namespace="http://nav.no/virksomhet/tjenester/avstemming/informasjon/konsistensavstemmingsdata/v1" schemaLocation="informasjon/konsistensavstemmingsdata/konsistensavstemmingsdata.xsd"/>
5+
<xsd:import namespace="http://nav.no/virksomhet/tjenester/avstemming/meldinger/v1" schemaLocation="meldinger/meldinger.xsd"/>
6+
<xsd:element name="sendAsynkronAvstemmingsdata">
7+
<xsd:complexType>
8+
<xsd:sequence>
9+
<xsd:element name="request" type="meldinger:SendAsynkronAvstemmingsdataRequest"/>
10+
</xsd:sequence>
11+
</xsd:complexType>
12+
</xsd:element>
13+
<xsd:element name="sendAsynkronAvstemmingsdataResponse">
14+
<xsd:complexType>
15+
<xsd:sequence>
16+
<xsd:element minOccurs="0" name="plassholder" type="xsd:anyType"/>
17+
</xsd:sequence>
18+
</xsd:complexType>
19+
</xsd:element>
20+
<xsd:element name="sendAsynkronKonsistensavstemmingsdata">
21+
<xsd:complexType>
22+
<xsd:sequence>
23+
<xsd:element name="request" type="kad:SendAsynkronKonsistensavstemmingsdataRequest"/>
24+
</xsd:sequence>
25+
</xsd:complexType>
26+
</xsd:element>
27+
<xsd:element name="sendAsynkronKonsistensavstemmingsdataResponse">
28+
<xsd:complexType>
29+
<xsd:sequence>
30+
<xsd:element minOccurs="0" name="plassholder" type="xsd:anyType"/>
31+
</xsd:sequence>
32+
</xsd:complexType>
33+
</xsd:element>
34+
</xsd:schema>
35+
</wsdl:types>
36+
<wsdl:message name="sendAsynkronAvstemmingsdataRequest">
37+
<wsdl:part element="tns:sendAsynkronAvstemmingsdata" name="parameters"/>
38+
</wsdl:message>
39+
<wsdl:message name="sendAsynkronAvstemmingsdataResponse">
40+
<wsdl:part element="tns:sendAsynkronAvstemmingsdataResponse" name="parameters"/>
41+
</wsdl:message>
42+
<wsdl:message name="sendAsynkronKonsistensavstemmingsdataRequest">
43+
<wsdl:part element="tns:sendAsynkronKonsistensavstemmingsdata" name="parameters"/>
44+
</wsdl:message>
45+
<wsdl:message name="sendAsynkronKonsistensavstemmingsdataResponse">
46+
<wsdl:part element="tns:sendAsynkronKonsistensavstemmingsdataResponse" name="parameters"/>
47+
</wsdl:message>
48+
<wsdl:portType name="Avstemming">
49+
<wsdl:operation name="sendAsynkronAvstemmingsdata">
50+
<wsdl:documentation>Operasjonen mottar en asynkron melding fra PEN og sender den videre til MQ som går mot Avstemmingskomponenten (Økonomi). Alle avstemminger starter med en 110-melding hvor aksjonskoden er ’START’. Selve avstemmingsdataene overføres sammen med en 110-melding hvor aksjonskoden er ’DATA’. Alle avstemminger avsluttes med en 110-melding hvor aksjonskoden er ’AVSL’. </wsdl:documentation>
51+
<wsdl:input message="tns:sendAsynkronAvstemmingsdataRequest"/>
52+
<wsdl:output message="tns:sendAsynkronAvstemmingsdataResponse"/>
53+
</wsdl:operation>
54+
<wsdl:operation name="sendAsynkronKonsistensavstemmingsdata">
55+
<wsdl:input message="tns:sendAsynkronKonsistensavstemmingsdataRequest"/>
56+
<wsdl:output message="tns:sendAsynkronKonsistensavstemmingsdataResponse"/>
57+
</wsdl:operation>
58+
</wsdl:portType>
59+
</wsdl:definitions>

0 commit comments

Comments
 (0)