From 0b6922e6a6c2c75d323398f13f6b2baf35b26b58 Mon Sep 17 00:00:00 2001 From: zhenzhen <zhenzhen.liu@mgm-tp.com> Date: Fri, 15 Nov 2024 16:48:19 +0100 Subject: [PATCH 01/56] OZG-7121 add deployment files --- Jenkinsfile | 376 ++++++++++++++++++ run_helm_test.sh | 8 + src/main/helm/.helmignore | 23 ++ src/main/helm/Chart.yaml | 30 ++ src/main/helm/templates/_helpers.tpl | 93 +++++ src/main/helm/templates/deployment.yaml | 148 +++++++ src/main/helm/templates/ingress.yaml | 39 ++ src/main/helm/templates/network_policy.yaml | 56 +++ src/main/helm/templates/service.yaml | 46 +++ src/main/helm/templates/service_monitor.yaml | 43 ++ src/main/helm/values.yaml | 31 ++ src/main/resources/application.yml | 22 + src/test/helm-linter-values.yaml | 36 ++ .../helm/deployment_defaults_labels_test.yaml | 72 ++++ src/test/helm/deployment_env_test.yaml | 90 +++++ .../deployment_image_pull_secret_test.yaml | 44 ++ src/test/helm/deployment_resources_test.yaml | 44 ++ src/test/helm/deployment_service_account.yaml | 30 ++ .../helm/deployment_spring_profile_test.yaml | 50 +++ src/test/helm/deployment_test.yaml | 237 +++++++++++ src/test/helm/ingress_test.yaml | 113 ++++++ src/test/helm/network_policy_test.yaml | 239 +++++++++++ src/test/helm/service_monitor_test.yaml | 84 ++++ src/test/helm/service_test.yaml | 96 +++++ 24 files changed, 2050 insertions(+) create mode 100644 Jenkinsfile create mode 100755 run_helm_test.sh create mode 100644 src/main/helm/.helmignore create mode 100644 src/main/helm/Chart.yaml create mode 100644 src/main/helm/templates/_helpers.tpl create mode 100644 src/main/helm/templates/deployment.yaml create mode 100644 src/main/helm/templates/ingress.yaml create mode 100644 src/main/helm/templates/network_policy.yaml create mode 100644 src/main/helm/templates/service.yaml create mode 100644 src/main/helm/templates/service_monitor.yaml create mode 100644 src/main/helm/values.yaml create mode 100644 src/test/helm-linter-values.yaml create mode 100644 src/test/helm/deployment_defaults_labels_test.yaml create mode 100644 src/test/helm/deployment_env_test.yaml create mode 100644 src/test/helm/deployment_image_pull_secret_test.yaml create mode 100644 src/test/helm/deployment_resources_test.yaml create mode 100644 src/test/helm/deployment_service_account.yaml create mode 100644 src/test/helm/deployment_spring_profile_test.yaml create mode 100644 src/test/helm/deployment_test.yaml create mode 100644 src/test/helm/ingress_test.yaml create mode 100644 src/test/helm/network_policy_test.yaml create mode 100644 src/test/helm/service_monitor_test.yaml create mode 100644 src/test/helm/service_test.yaml diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..460380a --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,376 @@ +pipeline { + agent { + node { + label 'ozgcloud-jenkins-build-agent-jdk21' + } + } + + environment { + BLUE_OCEAN_URL = "https://jenkins.infra.ozg-cloud.systems/job/xta-test-server/job/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/" + RELEASE_REGEX = /\d+.\d+.\d+/ + SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ + FAILED_STAGE = "" + SH_SUCCESS_STATUS_CODE = 0 + } + + options { + timeout(time: 1, unit: 'HOURS') + disableConcurrentBuilds() + buildDiscarder(logRotator(numToKeepStr: '5')) + } + + stages { + stage('Check Version') { + steps { + script { + FAILED_STAGE = env.STAGE_NAME + def rootVersion = getPomVersion('pom.xml') + + if(isReleaseBranch()){ + if ( !(rootVersion ==~ RELEASE_REGEX)) { + error("Keine Release Version für Branch ${env.BRANCH_NAME}.") + } + } else { + if ( !(rootVersion ==~ SNAPSHOT_REGEX)) { + error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.") + } + } + } + } + } + stage('Set Version') { + when { + not { + anyOf { + branch 'master' + branch 'release' + } + } + } + steps { + script { + FAILED_STAGE=env.STAGE_NAME + JAR_TAG = getPomVersion('pom.xml').replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT") + } + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true" + + } + } + } + + stage('Build XtaTestServer') { + steps { + script { + FAILED_STAGE=env.STAGE_NAME + } + + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3 -DelasticTests.disabled=true' + } + } + } + + stage('Deploy to Nexus'){ + steps { + script { + FAILED_STAGE = env.STAGE_NAME + } + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS -DskipTests deploy -Dmaven.wagon.http.retryHandler.count=3' + sh "mvn -s $MAVEN_SETTINGS versions:revert" + } + } + } + stage('Build Docker image') { + steps { + script { + FAILED_STAGE=env.STAGE_NAME + } + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS spring-boot:build-image -DskipTests -Dmaven.wagon.http.retryHandler.count=3' + } + } + } + + stage('Tag and Push Docker image') { + steps { + script { + FAILED_STAGE=env.STAGE_NAME + IMAGE_TAG = generateImageTag() + + tagAndPushDockerImage(IMAGE_TAG) + + if (env.BRANCH_NAME == 'master') { + tagAndPushDockerImage('snapshot-latest') + + } + else if (env.BRANCH_NAME == 'release') { + tagAndPushDockerImage('latest') + } + } + } + } + + stage('Test, build and deploy Helm Chart') { + steps { + script { + FAILED_STAGE=env.STAGE_NAME + HELM_CHART_VERSION = generateHelmChartVersion() + + sh "./run_helm_test.sh" + + dir('src/main/helm') { + + sh "helm package --version=${HELM_CHART_VERSION} ." + deployHelmChart(HELM_CHART_VERSION) + } + } + } + } + + + stage('Trigger Dev rollout') { + when { + branch 'master' + } + steps { + script { + FAILED_STAGE = env.STAGE_NAME + + cloneGitopsRepo() + + setNewDevXtaTestServerVersion() + + pushDevGitopsRepo() + } + } + } + stage('Trigger Test rollout') { + when { + branch 'release' + } + + steps { + script { + FAILED_STAGE = env.STAGE_NAME + + cloneGitopsRepo() + + setNewTestXtaTestServerVersion() + + pushTestGitopsRepo() + } + } + } + + stage ('Deploy SBOM to DependencyTrack') { + steps { + script { + IMAGE_TAG = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}" + + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + withCredentials([string(credentialsId: 'dependency-track-api-key', variable: 'API_KEY')]) { + + catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { + sh "mvn --no-transfer-progress -s $MAVEN_SETTINGS io.github.pmckeown:dependency-track-maven-plugin:upload-bom -Ddependency-track.apiKey=$API_KEY -Ddependency-track.projectVersion=${IMAGE_TAG} -Ddependency-track.dependencyTrackBaseUrl=https://dependency-track.ozg-sh.de" + } + } + } + } + } + } + + stage('Sonar Checks') { + when { + branch 'master' + } + steps { + script { + FAILED_STAGE=env.STAGE_NAME + + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + try { + withSonarQubeEnv('sonarqube-ozg-sh'){ + sh 'mvn -s $MAVEN_SETTINGS sonar:sonar' + } + } catch (Exception e) { + unstable("SonarQube failed") + } + } + } + } + } + } + + post { + always{ + junit testResults: '**/target/surefire-reports/*.xml', skipPublishingChecks: true + } + failure { + script { + if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'release') { + sendFailureMessage() + } + } + } + } +} + + +Boolean isReleaseBranch() { + return env.BRANCH_NAME == 'release' +} + +String getPomVersion(String pomFile){ + def pom = readMavenPom file: pomFile + + return pom.version +} + + +Void sendFailureMessage() { + def room = '' + def data = """{"msgtype":"m.text", \ + "body":"XtaTestServer: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER} + Link: ${BLUE_OCEAN_URL}", \ + "format": "org.matrix.custom.html", \ + "formatted_body":"XtaTestServer: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a + href='${BLUE_OCEAN_URL}'>${env.BUILD_NUMBER}</a>"}""" + + if (env.BRANCH_NAME == 'master') { + room = "!GjqhmouBtnDbwUkAjx:matrix.ozg-sh.de" + } + else if (env.BRANCH_NAME == 'release') { + room = "!oWZpUGTFsxkJIYNfYg:matrix.ozg-sh.de" + } + + sh "curl -XPOST -H 'authorization: Bearer ${getElementAccessToken()}' -d '${data}' https://matrix.ozg-sh.de/_matrix/client/v3/rooms/$room/send/m.room.message" +} + +String getElementAccessToken() { + withCredentials([string(credentialsId: 'element-login-json', variable: 'LOGIN_JSON')]) { + return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token + } +} + +Void deployHelmChart(String helmChartVersion) { + withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ + if (env.BRANCH_NAME == 'release') { + result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps -F file=@xta-test-server-'''+helmChartVersion+'''.tgz''', returnStdout: true + } + else { + result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@xta-test-server-'''+helmChartVersion+'''.tgz''', returnStdout: true + } + + if (result != '') { + error(result) + } + } +} + +Void loginToDockerRepo() { + withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' + } + +} + +String generateHelmChartVersion() { + def chartVersion = getPomVersion('pom.xml') + + if (env.BRANCH_NAME == 'master') { + chartVersion += "-${env.GIT_COMMIT.take(7)}" + } + else if (env.BRANCH_NAME != 'release') { + chartVersion += "-${env.BRANCH_NAME}" + } + + return chartVersion.replaceAll("_", "-") +} + +Void tagAndPushDockerImage(String newTag){ + withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' + + sh "docker tag docker.ozg-sh.de/xta-test-server:build-latest docker.ozg-sh.de/xta-test-server:${newTag}" + sh "docker push docker.ozg-sh.de/xta-test-server:${newTag}" + } +} + +String generateImageTag() { + def imageTag = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}" + + if (env.BRANCH_NAME == 'master') { + imageTag += "-${env.GIT_COMMIT.take(7)}" + } + + return imageTag +} + +Void configureGit() { + final email = "jenkins@ozg-sh.de" + final name = "jenkins" + + dir("gitops") { + sh "git config user.email '${email}'" + sh "git config user.name '${name}'" + } +} + +Void cloneGitopsRepo() { + withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { + sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/ozgcloud-devops/gitops.git' + } + + configureGit() +} + +Void setNewDevXtaTestServerVersion() { + setNewXtaTestServerGitopsVersion("dev") +} + +Void setNewTestXtaTestServerVersion() { + setNewXtaTestServerGitopsVersion("test") +} + +Void setNewXtaTestServerGitopsVersion(String environment) { + dir("gitops") { + def envFile = "${environment}/application/values/xta-test-server-values.yaml" + + def envVersions = readYaml file: envFile + + envVersions.xta_test_server.image.tag = IMAGE_TAG + envVersions.xta_test_server.helm.version = HELM_CHART_VERSION + + writeYaml file: envFile, data: envVersions, overwrite: true + } +} + +Void pushDevGitopsRepo() { + pushNewGitopsVersion('dev') +} + +Void pushTestGitopsRepo() { + pushNewGitopsVersion('test') +} + +Void pushNewGitopsVersion(String environment) { + dir('gitops') { + if (!hasXtaTestServerValuesFileChanged(environment)) { + return + } + + withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { + sh "git add ${environment}/application/values/xta-test-server-values.yaml" + + sh "git commit -m 'jenkins rollout ${environment} aggregation manager version ${IMAGE_TAG}'" + sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/ozgcloud-devops/gitops.git' + } + } +} + +Boolean hasXtaTestServerValuesFileChanged(String environment) { + return sh (script: "git status | grep '${environment}/application/values/xta-test-server-values.yaml'", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE as Integer +} + diff --git a/run_helm_test.sh b/run_helm_test.sh new file mode 100755 index 0000000..aafe0e7 --- /dev/null +++ b/run_helm_test.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml +helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ +cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . + diff --git a/src/main/helm/.helmignore b/src/main/helm/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/src/main/helm/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/src/main/helm/Chart.yaml b/src/main/helm/Chart.yaml new file mode 100644 index 0000000..57983c6 --- /dev/null +++ b/src/main/helm/Chart.yaml @@ -0,0 +1,30 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +apiVersion: v1 +appVersion: "1.0" +description: OZG-Cloud Helm chart for xta-test-server +name: xta-test-server +version: 0.0.0-MANAGED-BY-JENKINS +icon: https://simpleicons.org/icons/helm.svg diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl new file mode 100644 index 0000000..3f62119 --- /dev/null +++ b/src/main/helm/templates/_helpers.tpl @@ -0,0 +1,93 @@ + +{{/* error check 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}} +{{/* Namespace */}} +{{- define "app.namespace" -}} +{{- if gt (len (.Release.Namespace)) 63 -}} +{{- fail (printf ".Release.Namespace %s ist zu lang (max. 63 Zeichen)" .Release.Namespace) -}} +{{- end -}} +{{ printf "%s" .Release.Namespace }} +{{- end -}} + +{{/* Chart: Name + Version */}} +{{- define "app.chart" -}} +{{- if gt (len (printf "%s-%s" .Chart.Name .Chart.Version)) 63 -}} +{{- fail (printf ".Chart.Name-.Chart.Version %s-%s ist zu lang (max. 63 Zeichen)" .Chart.Name .Chart.Version) -}} +{{- end -}} +{{ printf "%s-%s" .Chart.Name .Chart.Version }} +{{- end -}} + +{{/* Managed-by -> On Helm, this value is always Helm */}} +{{- define "app.managedBy" -}} +{{- if gt (len (.Release.Service)) 63 -}} +{{- fail (printf ".Release.Service %s ist zu lang (max. 63 Zeichen)" .Release.Service) -}} +{{- end -}} +{{ printf "%s" .Release.Service }} +{{- end -}} + + +{{/* Default Labels: Helm recommended best-practice labels https://helm.sh/docs/chart_best_practices/labels/ */}} +{{- define "app.defaultLabels" }} +app.kubernetes.io/instance: xta-test-server +app.kubernetes.io/managed-by: {{ include "app.managedBy" . }} +app.kubernetes.io/name: {{ .Release.Name }} +app.kubernetes.io/namespace: {{ include "app.namespace" . }} +app.kubernetes.io/part-of: ozgcloud +app.kubernetes.io/version: {{ .Chart.Version }} +helm.sh/chart: {{ include "app.chart" . }} +ozgcloud-mongodb-client: "true" +{{- end -}} + +{{- define "app.matchLabels" }} +app.kubernetes.io/name: {{ .Release.Name }} +app.kubernetes.io/namespace: {{ include "app.namespace" . }} +{{- end -}} + + +{{- define "app.envSpringProfiles" }} +{{- if (.Values.env).overrideSpringProfiles -}} +{{ printf "%s" (.Values.env).overrideSpringProfiles }} +{{- else -}} +{{ printf "oc, %s" (include "app.ozgcloudEnvironment" . ) }} +{{- end -}} +{{- end -}} + +{{- define "app.ozgcloudEnvironment" -}} +{{- required "Environment muss angegeben sein" (.Values.ozgcloud).environment -}} +{{- end -}} + +{{- define "app.ozgcloudBezeichner" -}} +{{- required "ozgcloud.bezeichner muss angegeben sein" (.Values.ozgcloud).bezeichner -}} +{{- if lt 46 (len (.Values.ozgcloud).bezeichner) -}} +{{ fail (printf "ozgcloud.bezeichner %s ist zu lang (max. 46 Zeichen)" (.Values.ozgcloud).bezeichner) }} +{{- end -}} +{{- end -}} + +{{- define "app.baseDomain" -}} +{{- printf "%s.%s" (include "app.ozgcloudBezeichner" .) (include "app.baseUrl" .) }} +{{- end -}} + +{{- define "app.baseUrl" -}} +{{- required "baseUrl muss angegeben sein" .Values.baseUrl }} +{{- end -}} + +{{- define "app.serviceAccountName" -}} +{{ printf "%s" ( (.Values.serviceAccount).name | default "xta-test-server-service-account" ) }} +{{- end -}} + +{{- define "app.getCustomList" -}} +{{- with (.Values.env).customList -}} +{{- if kindIs "map" . -}} +{{ include "app.dictToList" . }} +{{- else if kindIs "slice" . -}} +{{ . | toYaml }} +{{- end -}} +{{- end -}} +{{- end -}} + +{{- define "app.dictToList" -}} +{{- $customList := list -}} +{{- range $key, $value := . -}} +{{- $customList = append $customList (dict "name" $key "value" $value) }} +{{- end -}} +{{- $customList | toYaml -}} +{{- end -}} \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml new file mode 100644 index 0000000..1990efe --- /dev/null +++ b/src/main/helm/templates/deployment.yaml @@ -0,0 +1,148 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }} + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} +spec: + progressDeadlineSeconds: 600 + replicas: {{ .Values.replicaCount }} + revisionHistoryLimit: 10 + selector: + matchLabels: + {{- include "app.matchLabels" . | indent 6 }} + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + type: RollingUpdate + template: + metadata: + labels: + {{- include "app.defaultLabels" . | indent 8 }} + component: xta-test-server + spec: + {{- if (.Values.serviceAccount).create }} + serviceAccountName: {{ include "app.serviceAccountName" . }} + {{- end }} + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + labelSelector: + matchLabels: + app.kubernetes.io/name: {{ .Release.Name }} + containers: + - env: + - name: spring_profiles_active + value: {{ include "app.envSpringProfiles" . }} + + {{- with include "app.getCustomList" . }} +{{ . | indent 10 }} + {{- end }} + image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}" + imagePullPolicy: Always + name: xta-test-server + ports: + - containerPort: 8080 + name: 8080tcp1 + protocol: TCP + - containerPort: 8443 + name: 8443tcp1 + protocol: TCP + - containerPort: 8081 + name: metrics + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /actuator/health/readiness + port: 8081 + scheme: HTTP + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 3 + startupProbe: + httpGet: + path: /actuator/health/readiness + port: 8081 + scheme: HTTP + failureThreshold: 10 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: + {{- with .Values.resources }} +{{ toYaml . | indent 10 }} + {{- end }} + securityContext: + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: false + runAsNonRoot: true + {{- with (.Values.securityContext).runAsUser }} + runAsUser: {{ . }} + {{- end }} + {{- with (.Values.securityContext).runAsGroup }} + runAsGroup: {{ . }} + {{- end }} + stdin: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + tty: true + volumeMounts: + - name: bindings + mountPath: "/bindings/ca-certificates/type" + subPath: type + readOnly: true + - name: mongodb-root-ca + mountPath: "/bindings/ca-certificates/mongodb-root-ca.pem" + subPath: ca.crt + readOnly: true + + volumes: + - name: bindings + configMap: + name: xta-test-server-bindings-type + - name: mongodb-root-ca + secret: + secretName: {{ ((.Values.database).tls).secretName | default "ozg-mongodb-tls-cert" }} + optional: true + dnsConfig: {} + dnsPolicy: ClusterFirst + {{- with .Values.hostAliases }} + hostAliases: +{{ toYaml . | indent 8 }} + {{- end }} + imagePullSecrets: + - name: {{ required "image-pull-secret must be set" .Values.imagePullSecret }} + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml new file mode 100644 index 0000000..e029f52 --- /dev/null +++ b/src/main/helm/templates/ingress.yaml @@ -0,0 +1,39 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Release.Name }} + namespace: {{ include "app.namespace" . }} + annotations: + {{- if (.Values.ingress).certManagerAnnotations -}} + {{- range (.Values.ingress).certManagerAnnotations }} +{{ . | indent 4 }} + {{- end }} + {{- else if (.Values.ingress).use_staging_cert }} + cert-manager.io/cluster-issuer: letsencrypt-staging + {{- else }} + cert-manager.io/cluster-issuer: letsencrypt-prod + {{- end }} +spec: + {{- if (.Values.ingress).className }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + rules: + - http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ .Release.Name }} + port: + number: 8443 + + host: {{ include "app.baseDomain" . }} + tls: + - hosts: + - {{ include "app.baseDomain" . }} + {{- if (.Values.ingress).tlsSecretName }} + secretName: {{ (.Values.ingress).tlsSecretName }} + {{- else }} + secretName: {{ .Values.ozgcloud.bezeichner }}-{{ .Release.Name }}-tls + {{- end }} \ No newline at end of file diff --git a/src/main/helm/templates/network_policy.yaml b/src/main/helm/templates/network_policy.yaml new file mode 100644 index 0000000..8c490c4 --- /dev/null +++ b/src/main/helm/templates/network_policy.yaml @@ -0,0 +1,56 @@ +{{- if not (.Values.networkPolicy).disabled }} +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: network-policy-xta-test-server + namespace: {{ include "app.namespace" . }} +spec: + podSelector: + matchLabels: + component: xta-test-server + policyTypes: + - Ingress + - Egress + ingress: + - from: + - namespaceSelector: + matchLabels: + name: {{ (.Values.networkPolicy).monitoringNamespace | default "openshift-user-workload-monitoring" }} + ports: + - protocol: TCP + port: 8081 + - from: + - podSelector: + matchLabels: + component: vorgang-manager + ports: + - protocol: TCP + port: 8080 +{{- with (.Values.networkPolicy).additionalIngressConfigLocal }} +{{ toYaml . | indent 2 }} +{{- end }} +{{- with (.Values.networkPolicy).additionalIngressConfigGlobal }} +{{ toYaml . | indent 2 }} +{{- end }} + egress: + - to: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: {{ required "networkPolicy.dnsServerNamespace must be set" (.Values.networkPolicy).dnsServerNamespace }} + ports: + - port: 53 + protocol: UDP + - port: 53 + protocol: TCP + - port: 5353 + protocol: UDP + - port: 5353 + protocol: TCP +{{- with (.Values.networkPolicy).additionalEgressConfigLocal }} +{{ toYaml . | indent 2 }} +{{- end }} +{{- with (.Values.networkPolicy).additionalEgressConfigGlobal }} +{{ toYaml . | indent 2 }} +{{- end }} + +{{- end }} \ No newline at end of file diff --git a/src/main/helm/templates/service.yaml b/src/main/helm/templates/service.yaml new file mode 100644 index 0000000..71ee6f4 --- /dev/null +++ b/src/main/helm/templates/service.yaml @@ -0,0 +1,46 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }} + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} + component: xta-test-server-service +spec: + type: ClusterIP + ports: + - name: 8080tcp1 + port: 8080 + protocol: TCP + - name: 8080tcp1 + port: 8443 + protocol: TCP + - name: metrics + port: 8081 + protocol: TCP + selector: + {{- include "app.matchLabels" . | indent 4 }} + component: xta-test-server diff --git a/src/main/helm/templates/service_monitor.yaml b/src/main/helm/templates/service_monitor.yaml new file mode 100644 index 0000000..621fe6e --- /dev/null +++ b/src/main/helm/templates/service_monitor.yaml @@ -0,0 +1,43 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Release.Name }} + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} + component: xta-test-server-service-monitor +spec: + endpoints: + - port: metrics + path: /actuator/prometheus + namespaceSelector: + matchNames: + - {{ include "app.namespace" . }} + selector: + matchLabels: + {{- include "app.matchLabels" . | indent 6 }} + component: xta-test-server-service \ No newline at end of file diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml new file mode 100644 index 0000000..072e1c9 --- /dev/null +++ b/src/main/helm/values.yaml @@ -0,0 +1,31 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +replicaCount: 1 + +image: + repo: docker.ozg-sh.de + name: xta-test-server + tag: latest + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index abdee8f..908850b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -44,3 +44,25 @@ logging: org.springframework.web: INFO org.apache.cxf: INFO +management: + server: + port: 8081 + health: + livenessState: + enabled: true + readinessState: + enabled: true + endpoint: + health: + group: + exploratory: + include: livenessState,readinessState,ping + show-details: always + probes: + enabled: true + prometheus: + enabled: true + endpoints: + web: + exposure: + include: health,prometheus \ No newline at end of file diff --git a/src/test/helm-linter-values.yaml b/src/test/helm-linter-values.yaml new file mode 100644 index 0000000..ed41716 --- /dev/null +++ b/src/test/helm-linter-values.yaml @@ -0,0 +1,36 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das +# Ministerium für Energiewende, Klimaschutz, Umwelt und Natur +# Zentrales IT-Management +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. + + +ozgcloud: + bezeichner: helm + environment: dev + +networkPolicy: + dnsServerNamespace: dummy-dns + + +imagePullSecret: image-pull-secret + +baseUrl: dev.xta.de + + \ No newline at end of file diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml new file mode 100644 index 0000000..75de30f --- /dev/null +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -0,0 +1,72 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test deployment default labels +release: + name: xta-test-server + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret +tests: + - it: check metadata.labels + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: xta-test-server + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: xta-test-server + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" + + - it: should set spec.selector.matchLabels + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/name: xta-test-server + app.kubernetes.io/namespace: sh-helm-test + + + - it: should have correct deyploment spec.template.metadata.labels + asserts: + - equal: + path: spec.template.metadata.labels + value: + app.kubernetes.io/instance: xta-test-server + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: xta-test-server + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: xta-test-server + helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" \ No newline at end of file diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml new file mode 100644 index 0000000..b3f06bc --- /dev/null +++ b/src/test/helm/deployment_env_test.yaml @@ -0,0 +1,90 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test deployment container environments +templates: + - templates/deployment.yaml +release: + namespace: sh-helm-test + +tests: + - it: check customList as list + set: + env.customList: + - name: my_test_environment_name + value: "A test value" + - name: test_environment + value: "B test value" + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: my_test_environment_name + value: "A test value" + - contains: + path: spec.template.spec.containers[0].env + content: + name: test_environment + value: "B test value" + - it: check customList as dict + set: + env.customList: + my_test_environment_name: "A test value" + test_environment: "B test value" + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: my_test_environment_name + value: "A test value" + - contains: + path: spec.template.spec.containers[0].env + content: + name: test_environment + value: "B test value" + + - it: check customList test value is not set by default + set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - notContains: + path: spec.template.spec.containers[0].env + content: + name: my_test_environment_name + value: "A test value" + + - it: should fail template when env not set + set: + imagePullSecret: image-pull-secret + asserts: + - failedTemplate: + errormessage: Environment muss angegeben sein \ No newline at end of file diff --git a/src/test/helm/deployment_image_pull_secret_test.yaml b/src/test/helm/deployment_image_pull_secret_test.yaml new file mode 100644 index 0000000..e7020bc --- /dev/null +++ b/src/test/helm/deployment_image_pull_secret_test.yaml @@ -0,0 +1,44 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das +# Ministerium für Energiewende, Klimaschutz, Umwelt und Natur +# Zentrales IT-Management +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. + +suite: deployment image pull secret + +templates: + - templates/deployment.yaml +release: + namespace: helm-test +set: + ozgcloud: + environment: dev +tests: + - it: should set image pull secret + set: + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.imagePullSecrets + content: + name: image-pull-secret + - it: should fail template when image pull secret not set + asserts: + - failedTemplate: + errormessage: image-pull-secret must be set diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml new file mode 100644 index 0000000..df9718f --- /dev/null +++ b/src/test/helm/deployment_resources_test.yaml @@ -0,0 +1,44 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das +# Ministerium für Energiewende, Klimaschutz, Umwelt und Natur +# Zentrales IT-Management +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. + +suite: deployment resources + +templates: + - templates/deployment.yaml +release: + namespace: helm-test +set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret +tests: + - it: should have customizable resources + set: + resources: { "test": 1 } + asserts: + - equal: + path: spec.template.spec.containers[0].resources + value: { "test": 1 } + - it: should not generate resources when values not set + asserts: + - isEmpty: + path: spec.template.spec.containers[0].resources \ No newline at end of file diff --git a/src/test/helm/deployment_service_account.yaml b/src/test/helm/deployment_service_account.yaml new file mode 100644 index 0000000..bc7d3d4 --- /dev/null +++ b/src/test/helm/deployment_service_account.yaml @@ -0,0 +1,30 @@ +suite: deployment service account +release: + name: xta-test-server + namespace: by-helm-test +templates: + - templates/deployment.yaml +set: + imagePullSecret: test-image-pull-secret +tests: + - it: should use service account with default name + set: + serviceAccount: + create: true + asserts: + - equal: + path: spec.template.spec.serviceAccountName + value: xta-test-server-service-account + - it: should use service account with name + set: + serviceAccount: + create: true + name: helm-service-account + asserts: + - equal: + path: spec.template.spec.serviceAccountName + value: helm-service-account + - it: should use default service account + asserts: + - isNull: + path: spec.template.spec.serviceAccountName \ No newline at end of file diff --git a/src/test/helm/deployment_spring_profile_test.yaml b/src/test/helm/deployment_spring_profile_test.yaml new file mode 100644 index 0000000..5d76c9d --- /dev/null +++ b/src/test/helm/deployment_spring_profile_test.yaml @@ -0,0 +1,50 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment springProfile tests +release: + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret +tests: + - it: should override the spring profiles + set: + env.overrideSpringProfiles: oc,dev,ea + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: spring_profiles_active + value: oc,dev,ea + - it: should generate the spring profiles + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: spring_profiles_active + value: oc, dev diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_test.yaml new file mode 100644 index 0000000..124a4b8 --- /dev/null +++ b/src/test/helm/deployment_test.yaml @@ -0,0 +1,237 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment +release: + name: xta-test-server +templates: + - templates/deployment.yaml +set: + ozgcloud: + environment: "default" + imagePullSecret: image-pull-secret +tests: + - it: should have metadata values + asserts: + - isKind: + of: Deployment + - isAPIVersion: + of: apps/v1 + - equal: + path: metadata.name + value: "xta-test-server" + - equal: + path: metadata.namespace + value: "NAMESPACE" + - exists: + path: metadata.labels + - it: should have correct general settings + asserts: + - equal: + path: spec.progressDeadlineSeconds + value: 600 + - equal: + path: spec.replicas + value: 1 + - equal: + path: spec.revisionHistoryLimit + value: 10 + - exists: + path: spec.selector + - equal: + path: spec.selector.matchLabels["app.kubernetes.io/name"] + value: "xta-test-server" + - equal: + path: spec.selector.matchLabels["app.kubernetes.io/namespace"] + value: "NAMESPACE" + - equal: + path: spec.strategy.rollingUpdate.maxSurge + value: 1 + - equal: + path: spec.strategy.rollingUpdate.maxUnavailable + value: 0 + - equal: + path: spec.strategy.type + value: "RollingUpdate" + - it: should have correct template configuration + asserts: + - equal: + path: spec.template.metadata.labels["app.kubernetes.io/instance"] + value: "xta-test-server" + - equal: + path: spec.template.metadata.labels.component + value: "xta-test-server" + - equal: + path: metadata.labels["ozgcloud-mongodb-client"] + value: "true" + - equal: + path: spec.template.spec.topologySpreadConstraints[0].maxSkew + value: 1 + - equal: + path: spec.template.spec.topologySpreadConstraints[0].topologyKey + value: "kubernetes.io/hostname" + - equal: + path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable + value: "ScheduleAnyway" + - equal: + path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"] + value: "xta-test-server" + - isEmpty: + path: spec.template.spec.dnsConfig + - equal: + path: spec.template.spec.dnsPolicy + value: "ClusterFirst" + - equal: + path: spec.template.spec.restartPolicy + value: "Always" + - equal: + path: spec.template.spec.schedulerName + value: "default-scheduler" + - isEmpty: + path: spec.template.spec.securityContext + - equal: + path: spec.template.spec.terminationGracePeriodSeconds + value: 30 + - it: should have correct container configuration + asserts: + - equal: + path: spec.template.spec.containers[0].name + value: "xta-test-server" + - equal: + path: spec.template.spec.containers[0].image + value: "docker.ozg-sh.de/xta-test-server:latest" + - equal: + path: spec.template.spec.containers[0].imagePullPolicy + value: "Always" + - equal: + path: spec.template.spec.containers[0].ports[0].containerPort + value: 8080 + - equal: + path: spec.template.spec.containers[0].ports[0].name + value: "8080tcp1" + - equal: + path: spec.template.spec.containers[0].ports[0].protocol + value: "TCP" + - equal: + path: spec.template.spec.containers[0].ports[1].containerPort + value: 8443 + - equal: + path: spec.template.spec.containers[0].ports[1].name + value: "8443tcp1" + - equal: + path: spec.template.spec.containers[0].ports[1].protocol + value: "TCP" + - equal: + path: spec.template.spec.containers[0].ports[2].containerPort + value: 8081 + - equal: + path: spec.template.spec.containers[0].ports[2].name + value: "metrics" + - equal: + path: spec.template.spec.containers[0].ports[2].protocol + value: "TCP" + - equal: + path: spec.template.spec.containers[0].readinessProbe.failureThreshold + value: 3 + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.path + value: "/actuator/health/readiness" + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.port + value: 8081 + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme + value: "HTTP" + - equal: + path: spec.template.spec.containers[0].readinessProbe.periodSeconds + value: 10 + - equal: + path: spec.template.spec.containers[0].readinessProbe.successThreshold + value: 1 + - equal: + path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds + value: 3 + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.path + value: "/actuator/health/readiness" + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.port + value: 8081 + - equal: + path: spec.template.spec.containers[0].startupProbe.failureThreshold + value: 10 + - equal: + path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds + value: 30 + - equal: + path: spec.template.spec.containers[0].startupProbe.periodSeconds + value: 10 + - equal: + path: spec.template.spec.containers[0].startupProbe.successThreshold + value: 1 + - equal: + path: spec.template.spec.containers[0].startupProbe.timeoutSeconds + value: 5 + - equal: + path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation + value: false + - equal: + path: spec.template.spec.containers[0].securityContext.privileged + value: false + - equal: + path: spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem + value: false + - equal: + path: spec.template.spec.containers[0].securityContext.runAsNonRoot + value: true + - isNull: + path: spec.template.spec.containers[0].securityContext.runAsUser + - isNull: + path: spec.template.spec.containers[0].securityContext.runAsGroup + - equal: + path: spec.template.spec.containers[0].stdin + value: true + - equal: + path: spec.template.spec.containers[0].terminationMessagePath + value: "/dev/termination-log" + - equal: + path: spec.template.spec.containers[0].terminationMessagePolicy + value: "File" + - equal: + path: spec.template.spec.containers[0].tty + value: true + - it: check containers runAsUser + set: + securityContext.runAsUser: 1000 + asserts: + - equal: + path: spec.template.spec.containers[0].securityContext.runAsUser + value: 1000 + - it: check runAsGroup + set: + securityContext.runAsGroup: 1000 + asserts: + - equal: + path: spec.template.spec.containers[0].securityContext.runAsGroup + value: 1000 \ No newline at end of file diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml new file mode 100644 index 0000000..e25af97 --- /dev/null +++ b/src/test/helm/ingress_test.yaml @@ -0,0 +1,113 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test ingress.yaml +release: + name: matabase + namespace: sh-helm-test +templates: + - templates/ingress.yaml +set: + ozgcloud: + bezeichner: helm + baseUrl: test.by.ozg-cloud.de + +tests: + - it: check ingress kind + asserts: + - isKind: + of: Ingress + - it: should create default ingress tls + asserts: + - equal: + path: spec.tls[0].secretName + value: helm-matabase-tls + - it: should set ingress tls + set: + ingress: + tlsSecretName: client-tls + asserts: + - equal: + path: spec.tls[0].secretName + value: client-tls + + - it: should not create ingress tls/ingressClass by default + asserts: + - isNull: + path: spec.ingressClassName + - it: should set ingress tls/ingressClass + set: + ingress: + className: ingress + asserts: + - equal: + path: spec.ingressClassName + value: ingress + + - it: should use default letsencrypt-prod cluster-issuer + asserts: + - equal: + path: metadata.annotations["cert-manager.io/cluster-issuer"] + value: letsencrypt-prod + + - it: should use letsencrypt-staging cluster-issuer + set: + ingress.use_staging_cert: true + asserts: + - equal: + path: metadata.annotations["cert-manager.io/cluster-issuer"] + value: letsencrypt-staging + + - it: should use letsencrypt-prod cluster-issuer + set: + ingress.use_staging_cert: false + asserts: + - equal: + path: metadata.annotations["cert-manager.io/cluster-issuer"] + value: letsencrypt-prod + + - it: should create tls hosts name correctly + asserts: + - equal: + path: spec.tls[0].hosts[0] + value: helm.test.by.ozg-cloud.de + + - it: should create rules correctly + asserts: + - equal: + path: spec.rules[0].http.paths[0] + value: + path: / + pathType: Prefix + backend: + service: + name: matabase + port: + number: 8443 + + - it: should set hostname + asserts: + - equal: + path: spec.rules[0].host + value: helm.test.by.ozg-cloud.de diff --git a/src/test/helm/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml new file mode 100644 index 0000000..ff25d18 --- /dev/null +++ b/src/test/helm/network_policy_test.yaml @@ -0,0 +1,239 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: network policy xta-test-server test +release: + name: xta-test-server + namespace: by-helm-test +templates: + - templates/network_policy.yaml + +tests: + - it: should match apiVersion + set: + networkPolicy: + dnsServerNamespace: kube-system + asserts: + - isAPIVersion: + of: networking.k8s.io/v1 + - it: should match kind + set: + networkPolicy: + dnsServerNamespace: kube-system + asserts: + - isKind: + of: NetworkPolicy + - it: validate metadata + set: + networkPolicy: + dnsServerNamespace: kube-system + asserts: + - equal: + path: metadata + value: + name: network-policy-xta-test-server + namespace: by-helm-test + - it: validate spec + set: + networkPolicy: + dnsServerNamespace: kube-system + asserts: + - equal: + path: spec + value: + egress: + - ports: + - port: 53 + protocol: UDP + - port: 53 + protocol: TCP + - port: 5353 + protocol: UDP + - port: 5353 + protocol: TCP + to: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: kube-system + ingress: + - from: + - namespaceSelector: + matchLabels: + name: openshift-user-workload-monitoring + ports: + - port: 8081 + protocol: TCP + - from: + - podSelector: + matchLabels: + component: vorgang-manager + ports: + - port: 8080 + protocol: TCP + podSelector: + matchLabels: + component: xta-test-server + policyTypes: + - Ingress + - Egress + + + - it: add ingress rule by values local + set: + networkPolicy: + dnsServerNamespace: test-namespace-dns + additionalIngressConfigLocal: + - from: + - podSelector: + matchLabels: + component: client2 + asserts: + - contains: + path: spec.ingress + content: + from: + - podSelector: + matchLabels: + component: client2 + + - it: set ingress monitoring namespace rule + set: + networkPolicy: + dnsServerNamespace: test-namespace-dns + monitoringNamespace: monitoring + asserts: + - contains: + path: spec.ingress + content: + from: + - namespaceSelector: + matchLabels: + name: "monitoring" + ports: + - protocol: TCP + port: 8081 + - it: add ingress rule by values global + set: + networkPolicy: + dnsServerNamespace: test-namespace-dns + additionalIngressConfigGlobal: + - from: + - podSelector: + matchLabels: + component: client2 + asserts: + - contains: + path: spec.ingress + content: + from: + - podSelector: + matchLabels: + component: client2 + + - it: add ingress rule by values global + set: + networkPolicy: + dnsServerNamespace: test-namespace-dns + additionalIngressConfigGlobal: + - from: + - podSelector: + matchLabels: + component: client2 + asserts: + - contains: + path: spec.ingress + content: + from: + - podSelector: + matchLabels: + component: client2 + + + - it: add egress rule by values local + set: + networkPolicy: + dnsServerNamespace: test-namespace-dns + additionalIngressConfigLocal: + - to: + - podSelector: + matchLabels: + component: client2 + asserts: + - contains: + path: spec.ingress + content: + to: + - podSelector: + matchLabels: + component: client2 + + - it: add egress rule by values global + set: + networkPolicy: + dnsServerNamespace: test-namespace-dns + additionalIngressConfigGlobal: + - to: + - podSelector: + matchLabels: + component: client2 + asserts: + - contains: + path: spec.ingress + content: + to: + - podSelector: + matchLabels: + component: client2 + + - it: test network policy disabled + set: + networkPolicy: + disabled: true + asserts: + - hasDocuments: + count: 0 + + - it: test network policy unset should be disabled + set: + networkPolicy: + disabled: false + dnsServerNamespace: test-dns-server-namespace + asserts: + - hasDocuments: + count: 1 + - it: test network policy dnsServerNamespace must be set message + set: + networkPolicy: + disabled: false + asserts: + - failedTemplate: + errorMessage: networkPolicy.dnsServerNamespace must be set + + - it: test network policy should be enabled by default + set: + networkPolicy: + dnsServerNamespace: test-dns-server-namespace + asserts: + - hasDocuments: + count: 1 \ No newline at end of file diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml new file mode 100644 index 0000000..1572482 --- /dev/null +++ b/src/test/helm/service_monitor_test.yaml @@ -0,0 +1,84 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test service_monitor +release: + name: xta-test-server + namespace: sh-helm-test +templates: + - templates/service_monitor.yaml +tests: + - it: should have basic info and the label component with value xta-test-server-service-monitor attached + asserts: + - isKind: + of: ServiceMonitor + - isAPIVersion: + of: monitoring.coreos.com/v1 + - equal: + path: metadata.name + value: xta-test-server + - equal: + path: metadata.namespace + value: sh-helm-test + - equal: + path: metadata.labels["component"] + value: xta-test-server-service-monitor + + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: xta-test-server + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: xta-test-server + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: xta-test-server-service-monitor + helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" + + - it: should have the metrics endpoint configured by default + asserts: + - contains: + path: spec.endpoints + content: + port: metrics + path: /actuator/prometheus + + - it: namespace selector should contain the namespace + asserts: + - contains: + path: spec.namespaceSelector.matchNames + content: sh-helm-test + + - it: selector should contain helm recommended labels name and namespace + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/name: xta-test-server + app.kubernetes.io/namespace: sh-helm-test + component: xta-test-server-service diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml new file mode 100644 index 0000000..ff1b3b4 --- /dev/null +++ b/src/test/helm/service_test.yaml @@ -0,0 +1,96 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das +# Ministerium für Energiewende, Klimaschutz, Umwelt und Natur +# Zentrales IT-Management +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. + +suite: service + +templates: + - templates/service.yaml +release: + name: xta-test-server + namespace: helm-test + +tests: + - it: has expected document values + asserts: + - containsDocument: + kind: Service + apiVersion: v1 + name: xta-test-server + namespace: helm-test + - it: should be of type ClusterIP + asserts: + - equal: + path: spec.type + value: ClusterIP + - it: has http port 8080 + asserts: + - contains: + path: spec.ports + content: + name: 8080tcp1 + port: 8080 + protocol: TCP + + - it: has http port 8443 + asserts: + - contains: + path: spec.ports + content: + name: 8080tcp1 + port: 8443 + protocol: TCP + + - it: has metrics port + asserts: + - contains: + path: spec.ports + content: + name: metrics + port: 8081 + protocol: TCP + - it: should contain helm recommended labels name and namespace + asserts: + - equal: + path: spec.selector["app.kubernetes.io/name"] + value: xta-test-server + - equal: + path: spec.selector["app.kubernetes.io/namespace"] + value: helm-test + - it: has selector component + asserts: + - equal: + path: spec.selector.component + value: xta-test-server + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: xta-test-server + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: xta-test-server + app.kubernetes.io/namespace: helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: xta-test-server-service + helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" \ No newline at end of file -- GitLab From 7fa65db041ffe5a270fa95074bcbe9a6661d99df Mon Sep 17 00:00:00 2001 From: zhenzhen <zhenzhen.liu@mgm-tp.com> Date: Fri, 15 Nov 2024 17:41:03 +0100 Subject: [PATCH 02/56] update jenkinsfile and pom --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 460380a..ecaa19d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -77,7 +77,7 @@ pipeline { FAILED_STAGE = env.STAGE_NAME } configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS -DskipTests deploy -Dmaven.wagon.http.retryHandler.count=3' + sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS -P nexus-deploy -DskipTests deploy -Dmaven.wagon.http.retryHandler.count=3' sh "mvn -s $MAVEN_SETTINGS versions:revert" } } @@ -293,7 +293,7 @@ Void tagAndPushDockerImage(String newTag){ withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' - sh "docker tag docker.ozg-sh.de/xta-test-server:build-latest docker.ozg-sh.de/xta-test-server:${newTag}" + sh "docker tag docker.ozg-sh.de/xta-test-server:${getPomVersion('pom.xml')} docker.ozg-sh.de/xta-test-server:${newTag}" sh "docker push docker.ozg-sh.de/xta-test-server:${newTag}" } } -- GitLab From 68e6689d58bc453b6225602d26bbd4675f90dc4d Mon Sep 17 00:00:00 2001 From: zhenzhen <zhenzhen.liu@mgm-tp.com> Date: Fri, 15 Nov 2024 20:21:29 +0100 Subject: [PATCH 03/56] update jenkinsfile --- Jenkinsfile | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ecaa19d..3c2783c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -97,7 +97,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - IMAGE_TAG = generateImageTag() + IMAGE_TAG = buildVersionName() tagAndPushDockerImage(IMAGE_TAG) @@ -116,7 +116,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - HELM_CHART_VERSION = generateHelmChartVersion() + HELM_CHART_VERSION = buildVersionName() sh "./run_helm_test.sh" @@ -167,7 +167,7 @@ pipeline { stage ('Deploy SBOM to DependencyTrack') { steps { script { - IMAGE_TAG = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}" + IMAGE_TAG = buildVersionName('pom.xml') configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { withCredentials([string(credentialsId: 'dependency-track-api-key', variable: 'API_KEY')]) { @@ -276,17 +276,12 @@ Void loginToDockerRepo() { } -String generateHelmChartVersion() { - def chartVersion = getPomVersion('pom.xml') - if (env.BRANCH_NAME == 'master') { - chartVersion += "-${env.GIT_COMMIT.take(7)}" - } - else if (env.BRANCH_NAME != 'release') { - chartVersion += "-${env.BRANCH_NAME}" +String buildVersionName(String pomFile) { + if (isReleaseBranch()) { + return getPomVersion(pomFile) } - - return chartVersion.replaceAll("_", "-") + return "${getPomVersion(pomFile)}-${env.BRANCH_NAME}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-") } Void tagAndPushDockerImage(String newTag){ @@ -298,16 +293,6 @@ Void tagAndPushDockerImage(String newTag){ } } -String generateImageTag() { - def imageTag = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}" - - if (env.BRANCH_NAME == 'master') { - imageTag += "-${env.GIT_COMMIT.take(7)}" - } - - return imageTag -} - Void configureGit() { final email = "jenkins@ozg-sh.de" final name = "jenkins" -- GitLab From 20bd227d7075a8caa7ed7b7c94a6ab69eaf92acd Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Thu, 21 Nov 2024 14:30:34 +0100 Subject: [PATCH 04/56] OZG-7121 fix JenkinsFile --- Jenkinsfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3c2783c..2637bbf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,7 +24,7 @@ pipeline { steps { script { FAILED_STAGE = env.STAGE_NAME - def rootVersion = getPomVersion('pom.xml') + def rootVersion = getPomVersion() if(isReleaseBranch()){ if ( !(rootVersion ==~ RELEASE_REGEX)) { @@ -50,7 +50,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - JAR_TAG = getPomVersion('pom.xml').replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT") + JAR_TAG = getPomVersion().replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT") } configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true" @@ -167,7 +167,7 @@ pipeline { stage ('Deploy SBOM to DependencyTrack') { steps { script { - IMAGE_TAG = buildVersionName('pom.xml') + IMAGE_TAG = buildVersionName() configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { withCredentials([string(credentialsId: 'dependency-track-api-key', variable: 'API_KEY')]) { @@ -222,8 +222,8 @@ Boolean isReleaseBranch() { return env.BRANCH_NAME == 'release' } -String getPomVersion(String pomFile){ - def pom = readMavenPom file: pomFile +String getPomVersion(){ + def pom = readMavenPom file: 'pom.xml' return pom.version } @@ -277,18 +277,18 @@ Void loginToDockerRepo() { } -String buildVersionName(String pomFile) { +String buildVersionName() { if (isReleaseBranch()) { - return getPomVersion(pomFile) + return getPomVersion() } - return "${getPomVersion(pomFile)}-${env.BRANCH_NAME}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-") + return "${getPomVersion()}-${env.BRANCH_NAME}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-") } Void tagAndPushDockerImage(String newTag){ withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' - sh "docker tag docker.ozg-sh.de/xta-test-server:${getPomVersion('pom.xml')} docker.ozg-sh.de/xta-test-server:${newTag}" + sh "docker tag docker.ozg-sh.de/xta-test-server:${getPomVersion()} docker.ozg-sh.de/xta-test-server:${newTag}" sh "docker push docker.ozg-sh.de/xta-test-server:${newTag}" } } -- GitLab From 5d5d26388fe4887dabd970499241289ea1599d81 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Thu, 21 Nov 2024 16:33:12 +0100 Subject: [PATCH 05/56] OZG-7121 extract docker image push into bash script --- Jenkinsfile | 10 ++++++---- script/push-docker-image.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 script/push-docker-image.sh diff --git a/Jenkinsfile b/Jenkinsfile index 2637bbf..0da508c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -286,10 +286,12 @@ String buildVersionName() { Void tagAndPushDockerImage(String newTag){ withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' - - sh "docker tag docker.ozg-sh.de/xta-test-server:${getPomVersion()} docker.ozg-sh.de/xta-test-server:${newTag}" - sh "docker push docker.ozg-sh.de/xta-test-server:${newTag}" + sh """ + export DOCKER_USER=${USER} + export DOCKER_PASSWORD=${PASSWORD} + export BRANCH_NAME=${env.BRANCH_NAME} + ./tag_and_push_docker_image.sh ${newTag} ${getPomVersion()} + """ } } diff --git a/script/push-docker-image.sh b/script/push-docker-image.sh new file mode 100644 index 0000000..d118b47 --- /dev/null +++ b/script/push-docker-image.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +NEW_TAG="$1" +POM_VERSION="$2" +DOCKER_REGISTRY="docker.ozg-sh.de" +IMAGE_NAME="xta-test-server" + +if [ -z "$DOCKER_USER" ]; then + echo "Error: USER environment variable must be set" + exit 1 +fi +if [ -z "$DOCKER_PASSWORD" ]; then + echo "Error: PASSWORD environment variable must be set" + exit 1 +fi +if [ -z "$BRANCH_NAME" ]; then + echo "Error: BRANCH_NAME environment variable must be set" + exit 1 +fi + +echo "BRANCH_NAME: ${BRANCH_NAME}" + +echo "Log into Docker..." +echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USER" --password-stdin + +echo "Tag Docker image..." +docker tag "${DOCKER_REGISTRY}/${IMAGE_NAME}:${POM_VERSION}" "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}" + +echo "Push Docker image..." +docker push "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}" + +echo "Docker image pushed successfully: ${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}" \ No newline at end of file -- GitLab From 6c7376fa79dbe5e87f9497dc883dd6aa8d710e71 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 10:42:30 +0100 Subject: [PATCH 06/56] OZG-7121 adjust Service port name --- Jenkinsfile | 19 +++++++++++-------- src/main/helm/templates/service.yaml | 2 +- src/test/helm/service_test.yaml | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0da508c..8619cb3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -256,19 +256,21 @@ String getElementAccessToken() { Void deployHelmChart(String helmChartVersion) { withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ - if (env.BRANCH_NAME == 'release') { - result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps -F file=@xta-test-server-'''+helmChartVersion+'''.tgz''', returnStdout: true - } - else { - result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@xta-test-server-'''+helmChartVersion+'''.tgz''', returnStdout: true - } - + result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=''' + getHelmChartRepository() + ''' -F file=@xta-test-server-'''+helmChartVersion+'''.tgz''', returnStdout: true if (result != '') { error(result) } } } +String getHelmChartRepository(){ + if (env.BRANCH_NAME == 'release') { + return 'ozg-base-apps' + } + return 'ozg-base-apps-snapshot' + } +} + Void loginToDockerRepo() { withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' @@ -286,11 +288,12 @@ String buildVersionName() { Void tagAndPushDockerImage(String newTag){ withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + sh "chmod +x script/push-docker-image.sh" sh """ export DOCKER_USER=${USER} export DOCKER_PASSWORD=${PASSWORD} export BRANCH_NAME=${env.BRANCH_NAME} - ./tag_and_push_docker_image.sh ${newTag} ${getPomVersion()} + ./script/push-docker-image.sh ${newTag} ${getPomVersion()} """ } } diff --git a/src/main/helm/templates/service.yaml b/src/main/helm/templates/service.yaml index 71ee6f4..cc2a471 100644 --- a/src/main/helm/templates/service.yaml +++ b/src/main/helm/templates/service.yaml @@ -35,7 +35,7 @@ spec: - name: 8080tcp1 port: 8080 protocol: TCP - - name: 8080tcp1 + - name: 8443tcp1 port: 8443 protocol: TCP - name: metrics diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml index ff1b3b4..585ea72 100644 --- a/src/test/helm/service_test.yaml +++ b/src/test/helm/service_test.yaml @@ -55,7 +55,7 @@ tests: - contains: path: spec.ports content: - name: 8080tcp1 + name: 8443tcp1 port: 8443 protocol: TCP -- GitLab From f0942a413ea50d78deae3ea8ee646503bedea7e0 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 10:54:38 +0100 Subject: [PATCH 07/56] OZG-7121 add service account --- src/main/helm/templates/_helpers.tpl | 2 +- src/main/helm/templates/deployment.yaml | 2 +- src/main/helm/templates/service_account.yaml | 8 ++++ src/test/helm/service_account_test.yaml | 40 ++++++++++++++++++++ 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 src/main/helm/templates/service_account.yaml create mode 100644 src/test/helm/service_account_test.yaml diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index 3f62119..df89c62 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -70,7 +70,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- required "baseUrl muss angegeben sein" .Values.baseUrl }} {{- end -}} -{{- define "app.serviceAccountName" -}} +{{- define "app.getServiceAccountName" -}} {{ printf "%s" ( (.Values.serviceAccount).name | default "xta-test-server-service-account" ) }} {{- end -}} diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 1990efe..2111b38 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -48,7 +48,7 @@ spec: component: xta-test-server spec: {{- if (.Values.serviceAccount).create }} - serviceAccountName: {{ include "app.serviceAccountName" . }} + serviceAccountName: {{ include "app.getServiceAccountName" . }} {{- end }} topologySpreadConstraints: - maxSkew: 1 diff --git a/src/main/helm/templates/service_account.yaml b/src/main/helm/templates/service_account.yaml new file mode 100644 index 0000000..8ee2faa --- /dev/null +++ b/src/main/helm/templates/service_account.yaml @@ -0,0 +1,8 @@ + +{{- if (.Values.serviceAccount).create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "app.getServiceAccountName" . }} + namespace: {{ include "app.namespace" . }} +{{- end }} \ No newline at end of file diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml new file mode 100644 index 0000000..db871fd --- /dev/null +++ b/src/test/helm/service_account_test.yaml @@ -0,0 +1,40 @@ +suite: service account test +release: + name: xta-test-server + namespace: helm-test +templates: + - templates/service_account.yaml +tests: + - it: should create service account with default name + set: + serviceAccount: + create: true + asserts: + - isKind: + of: ServiceAccount + - isAPIVersion: + of: v1 + - equal: + path: metadata.name + value: xta-test-server-service-account + - equal: + path: metadata.namespace + value: helm-test + - it: should create service account with name + set: + serviceAccount: + create: true + name: helm-service-account + asserts: + - isKind: + of: ServiceAccount + - equal: + path: metadata.name + value: helm-service-account + - equal: + path: metadata.namespace + value: helm-test + - it: should not create service account + asserts: + - hasDocuments: + count: 0 \ No newline at end of file -- GitLab From 6bf0755c3d42bfd5ea610372f64a34f7ca4ee8f2 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 10:57:54 +0100 Subject: [PATCH 08/56] OZG-7121 fix Jenkinsfile --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8619cb3..bc6dc54 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -268,7 +268,6 @@ String getHelmChartRepository(){ return 'ozg-base-apps' } return 'ozg-base-apps-snapshot' - } } Void loginToDockerRepo() { -- GitLab From 4bddbeb951de291f3b25f4fd0be8e2a983b375bc Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 11:00:06 +0100 Subject: [PATCH 09/56] OZG-7121 skip dev rollout condition --- Jenkinsfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index bc6dc54..5cd094b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -131,9 +131,10 @@ pipeline { stage('Trigger Dev rollout') { - when { - branch 'master' - } + // TODO reactivate before merge + //when { + //branch 'master' + //} steps { script { FAILED_STAGE = env.STAGE_NAME -- GitLab From 518d9c85486a7099239befbfc8a10151253eb422 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 11:45:52 +0100 Subject: [PATCH 10/56] OZG-7121 add configmap --- src/main/helm/templates/configmap.yaml | 8 +++++++ src/test/helm/configmap_test.yaml | 31 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/helm/templates/configmap.yaml create mode 100644 src/test/helm/configmap_test.yaml diff --git a/src/main/helm/templates/configmap.yaml b/src/main/helm/templates/configmap.yaml new file mode 100644 index 0000000..8e4fbac --- /dev/null +++ b/src/main/helm/templates/configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-bindings-type + namespace: {{ include "app.namespace" . }} +data: + type: | + ca-certificates \ No newline at end of file diff --git a/src/test/helm/configmap_test.yaml b/src/test/helm/configmap_test.yaml new file mode 100644 index 0000000..977a359 --- /dev/null +++ b/src/test/helm/configmap_test.yaml @@ -0,0 +1,31 @@ +suite: configmap test +templates: + - templates/configmap.yaml +release: + name: release-name + namespace: helm-test +tests: + - it: should have apiVersion + asserts: + - isAPIVersion: + of: v1 + + - it: should have kind + asserts: + - isKind: + of: ConfigMap + + - it: should have metadata + asserts: + - equal: + path: metadata.name + value: release-name-bindings-type + - equal: + path: metadata.namespace + value: helm-test + + - it: should have data + asserts: + - equal: + path: data.type + value: ca-certificates \ No newline at end of file -- GitLab From 425002a725994169273580adfbe0ae2b3d96991c Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 11:55:46 +0100 Subject: [PATCH 11/56] OZG-7121 mount temp directory --- src/main/helm/templates/deployment.yaml | 4 ++++ src/test/helm/deployment_volumes_test.yaml | 26 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/test/helm/deployment_volumes_test.yaml diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 2111b38..107a8b2 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -117,6 +117,8 @@ spec: terminationMessagePolicy: File tty: true volumeMounts: + - name: temp-dir + mountPath: "/tmp" - name: bindings mountPath: "/bindings/ca-certificates/type" subPath: type @@ -127,6 +129,8 @@ spec: readOnly: true volumes: + - name: temp-dir + emptyDir: {} - name: bindings configMap: name: xta-test-server-bindings-type diff --git a/src/test/helm/deployment_volumes_test.yaml b/src/test/helm/deployment_volumes_test.yaml new file mode 100644 index 0000000..9183af6 --- /dev/null +++ b/src/test/helm/deployment_volumes_test.yaml @@ -0,0 +1,26 @@ +suite: deployment volumes test +templates: + - templates/deployment.yaml +release: + name: helm-test + namespace: ns-helm-test +set: + ozgcloud: + environment: test + imagePullSecret: image-pull-secret +tests: + - it: should have temp-dir volume + asserts: + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: temp-dir + mountPath: "/tmp" + + - it: should have temp-dir volume mount + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: temp-dir + emptyDir: {} \ No newline at end of file -- GitLab From 785839f8eb21aad12943ca5faaff8d5b05f5f8e7 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 12:23:02 +0100 Subject: [PATCH 12/56] OZG-7121 adjust web exposure --- src/main/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 908850b..e13006c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -65,4 +65,4 @@ management: endpoints: web: exposure: - include: health,prometheus \ No newline at end of file + include: "*" \ No newline at end of file -- GitLab From 3085d98c06314b2552ab16b38b342b38635dbb47 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 13:20:52 +0100 Subject: [PATCH 13/56] OZG-7121 add missing dependency --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index a0e0ce4..5aa6652 100644 --- a/pom.xml +++ b/pom.xml @@ -93,6 +93,12 @@ <scope>runtime</scope> <optional>true</optional> </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + <version>3.3.4</version> + </dependency> <!-- Spring Validation --> <dependency> -- GitLab From 48bdf2bff3169df9e7025265fd2434af98b64504 Mon Sep 17 00:00:00 2001 From: Martin <git@mail.de> Date: Fri, 22 Nov 2024 15:16:31 +0100 Subject: [PATCH 14/56] OZG-7121 adjust readiness/startup probes from http to https --- src/main/helm/templates/deployment.yaml | 4 ++-- src/test/helm/deployment_test.yaml | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 107a8b2..f0f5101 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -83,7 +83,7 @@ spec: httpGet: path: /actuator/health/readiness port: 8081 - scheme: HTTP + scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 3 @@ -91,7 +91,7 @@ spec: httpGet: path: /actuator/health/readiness port: 8081 - scheme: HTTP + scheme: HTTPS failureThreshold: 10 initialDelaySeconds: 30 periodSeconds: 10 diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_test.yaml index 124a4b8..6efc4a9 100644 --- a/src/test/helm/deployment_test.yaml +++ b/src/test/helm/deployment_test.yaml @@ -162,7 +162,7 @@ tests: value: 8081 - equal: path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme - value: "HTTP" + value: "HTTPS" - equal: path: spec.template.spec.containers[0].readinessProbe.periodSeconds value: 10 @@ -178,6 +178,9 @@ tests: - equal: path: spec.template.spec.containers[0].startupProbe.httpGet.port value: 8081 + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.scheme + value: "HTTPS" - equal: path: spec.template.spec.containers[0].startupProbe.failureThreshold value: 10 -- GitLab From 7aeea8d3524eea783e9dd2893801ce6407eaf768 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 9 Dec 2024 17:16:45 +0100 Subject: [PATCH 15/56] #2 OZG-7121 helm: Add server certificate resource --- src/main/helm/templates/_helpers.tpl | 1 - src/main/helm/templates/certificate.yaml | 61 +++++++++++++++ src/main/helm/templates/default_secret.yaml | 10 +++ .../templates/selfsigned_cluster_issuer.yaml | 9 +++ src/main/helm/test-values.yaml | 20 +++++ src/test/helm/certificate_test.yaml | 78 +++++++++++++++++++ .../helm/deployment_defaults_labels_test.yaml | 2 - src/test/helm/deployment_test.yaml | 3 - src/test/helm/service_monitor_test.yaml | 1 - src/test/helm/service_test.yaml | 3 +- 10 files changed, 179 insertions(+), 9 deletions(-) create mode 100644 src/main/helm/templates/certificate.yaml create mode 100644 src/main/helm/templates/default_secret.yaml create mode 100644 src/main/helm/templates/selfsigned_cluster_issuer.yaml create mode 100644 src/main/helm/test-values.yaml create mode 100644 src/test/helm/certificate_test.yaml diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index df89c62..dc3b2fc 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -34,7 +34,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} app.kubernetes.io/part-of: ozgcloud app.kubernetes.io/version: {{ .Chart.Version }} helm.sh/chart: {{ include "app.chart" . }} -ozgcloud-mongodb-client: "true" {{- end -}} {{- define "app.matchLabels" }} diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml new file mode 100644 index 0000000..8d1bf81 --- /dev/null +++ b/src/main/helm/templates/certificate.yaml @@ -0,0 +1,61 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: {{ .Release.Name }}-tls-certificate + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} +spec: + isCA: false + secretName: {{ .Release.Name }}-tls-secret + privateKey: + algorithm: ECDSA + size: 256 + issuerRef: + name: xta-test-cluster-issuer + kind: ClusterIssuer + group: cert-manager.io + duration: 8760h0m0s # 1 Jahr + renewBefore: 5840h0m0s # 8 Monate + commonName: {{ .Release.Name }} + keystores: + jks: + create: true + passwordSecretRef: + name: xta-test-server-default-secret + key: keystorePassword + alias: xta-test-server + pkcs12: + create: true + passwordSecretRef: + name: xta-test-server-default-secret + key: keystorePassword + subject: + organisations: + - "XtaTestOrga" + countries: + - DE + organizationalUnits: + - "XtaTestUnit" + localities: + - Kiel + provinces: + - Schleswig-Holstein + steetAddresses: + - "Test-Str. 4" + postalCodes: + - "22222" + # critical, digitalSignature, nonRepudiation, keyEncipherment, keyAgreement + usages: + - server auth + - digital signature + - content commitment # https://cryptography.io/en/latest/x509/reference/#cryptography.x509.KeyUsage.content_commitment + - key encipherment + - key agreement + dnsNames: + - "*.{{ .Release.Name }}.{{ include "app.namespace" . }}.svc.cluster.local" + - "{{ .Release.Name }}.{{ include "app.namespace" . }}.svc.cluster.local" + - "{{ .Release.Name }}.{{ include "app.namespace" . }}.svc.cluster" + - "{{ .Release.Name }}.{{ include "app.namespace" . }}.svc" + - "{{ .Release.Name }}.{{ include "app.namespace" . }}" + - "{{ .Release.Name }}" \ No newline at end of file diff --git a/src/main/helm/templates/default_secret.yaml b/src/main/helm/templates/default_secret.yaml new file mode 100644 index 0000000..ae8b6f5 --- /dev/null +++ b/src/main/helm/templates/default_secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: xta-test-server-default-secret + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} +type: Opaque +data: + keystorePassword: password \ No newline at end of file diff --git a/src/main/helm/templates/selfsigned_cluster_issuer.yaml b/src/main/helm/templates/selfsigned_cluster_issuer.yaml new file mode 100644 index 0000000..a988ee3 --- /dev/null +++ b/src/main/helm/templates/selfsigned_cluster_issuer.yaml @@ -0,0 +1,9 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: xta-test-cluster-issuer + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} +spec: + selfSigned: {} \ No newline at end of file diff --git a/src/main/helm/test-values.yaml b/src/main/helm/test-values.yaml new file mode 100644 index 0000000..a40b96d --- /dev/null +++ b/src/main/helm/test-values.yaml @@ -0,0 +1,20 @@ +replicaCount: 1 + +image: + repo: docker.ozg-sh.de + name: xta-test-server + tag: latest + +imagePullSecret: ozgcloud-image-pull-secret + +env: + overrideSpringProfiles: abc, test + +baseUrl: test.by.ozg-cloud.de + +ozgcloud: + bezeichner: xta-test-serverr + +networkPolicy: + disabled: false + dnsServerNamespace: openshift-dns \ No newline at end of file diff --git a/src/test/helm/certificate_test.yaml b/src/test/helm/certificate_test.yaml new file mode 100644 index 0000000..54c4401 --- /dev/null +++ b/src/test/helm/certificate_test.yaml @@ -0,0 +1,78 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test certificate.yaml +release: + name: xta-test-server-release-name + namespace: sh-helm-test +templates: + - templates/certificate.yaml +set: + ozgcloud: + bezeichner: helm + baseUrl: test.by.ozg-cloud.de + +tests: + - it: check Certificate kind + asserts: + - isKind: + of: Certificate + - it: should set metadata name + asserts: + - equal: + path: metadata.name + value: xta-test-server-release-name-tls-certificate + - it: should set secret name + asserts: + - equal: + path: spec.secretName + value: xta-test-server-release-name-tls-secret + - it: should set common name + asserts: + - equal: + path: spec.commonName + value: xta-test-server-release-name + - it: should set dns names + asserts: + - equal: + path: spec.dnsNames + value: + - "*.xta-test-server-release-name.sh-helm-test.svc.cluster.local" + - "xta-test-server-release-name.sh-helm-test.svc.cluster.local" + - "xta-test-server-release-name.sh-helm-test.svc.cluster" + - "xta-test-server-release-name.sh-helm-test.svc" + - "xta-test-server-release-name.sh-helm-test" + - "xta-test-server-release-name" + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: xta-test-server + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: xta-test-server-release-name + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS \ No newline at end of file diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index 75de30f..5f38ba2 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -45,7 +45,6 @@ tests: app.kubernetes.io/part-of: ozgcloud app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS - ozgcloud-mongodb-client: "true" - it: should set spec.selector.matchLabels asserts: @@ -69,4 +68,3 @@ tests: app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS component: xta-test-server helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS - ozgcloud-mongodb-client: "true" \ No newline at end of file diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_test.yaml index 6efc4a9..5dd2e12 100644 --- a/src/test/helm/deployment_test.yaml +++ b/src/test/helm/deployment_test.yaml @@ -82,9 +82,6 @@ tests: - equal: path: spec.template.metadata.labels.component value: "xta-test-server" - - equal: - path: metadata.labels["ozgcloud-mongodb-client"] - value: "true" - equal: path: spec.template.spec.topologySpreadConstraints[0].maxSkew value: 1 diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml index 1572482..5d7ffe4 100644 --- a/src/test/helm/service_monitor_test.yaml +++ b/src/test/helm/service_monitor_test.yaml @@ -58,7 +58,6 @@ tests: app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS component: xta-test-server-service-monitor helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS - ozgcloud-mongodb-client: "true" - it: should have the metrics endpoint configured by default asserts: diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml index 585ea72..4c9156d 100644 --- a/src/test/helm/service_test.yaml +++ b/src/test/helm/service_test.yaml @@ -92,5 +92,4 @@ tests: app.kubernetes.io/part-of: ozgcloud app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS component: xta-test-server-service - helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS - ozgcloud-mongodb-client: "true" \ No newline at end of file + helm.sh/chart: xta-test-server-0.0.0-MANAGED-BY-JENKINS \ No newline at end of file -- GitLab From e455ecc76f9bb58dfa52dcc12c783f12e6113db1 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 09:59:50 +0100 Subject: [PATCH 16/56] #2 OZG-7121 pom: Remove outdated documentation and add helm to pipeline --- .asciidoctorconfig.adoc | 12 - .gitlab-ci.yml | 21 + Jenkinsfile | 366 ------------------ build/assembly.xml | 48 --- build/resources/application-local.yml | 38 -- doc/bedienungsanleitung.adoc | 226 ----------- doc/docinfo-footer.html | 4 - doc/docinfo.html | 17 - doc/erstellen_von_zertifikaten.adoc | 226 ----------- doc/images/soapui_cert.png | Bin 79315 -> 0 bytes doc/images/xca_create_certificate_app_01.png | Bin 26250 -> 0 bytes doc/images/xca_create_certificate_app_02.png | Bin 11607 -> 0 bytes doc/images/xca_create_certificate_app_03.png | Bin 25564 -> 0 bytes .../xca_create_certificate_client_01.png | Bin 26157 -> 0 bytes .../xca_create_certificate_client_02.png | Bin 11687 -> 0 bytes .../xca_create_certificate_client_03.png | Bin 25594 -> 0 bytes .../xca_create_certificate_root_ca_01.png | Bin 24762 -> 0 bytes .../xca_create_certificate_root_ca_02.png | Bin 11412 -> 0 bytes .../xca_create_certificate_root_ca_03.png | Bin 25356 -> 0 bytes doc/images/xca_template_app_01.png | Bin 23597 -> 0 bytes doc/images/xca_template_app_02.png | Bin 30739 -> 0 bytes doc/images/xca_template_app_03.png | Bin 36351 -> 0 bytes doc/images/xca_template_app_04.png | Bin 48166 -> 0 bytes doc/images/xca_template_client_01.png | Bin 23389 -> 0 bytes doc/images/xca_template_client_02.png | Bin 29667 -> 0 bytes doc/images/xca_template_client_03.png | Bin 37143 -> 0 bytes doc/images/xca_template_client_04.png | Bin 48296 -> 0 bytes doc/images/xca_template_root_ca_01.png | Bin 23979 -> 0 bytes doc/images/xca_template_root_ca_02.png | Bin 30610 -> 0 bytes doc/images/xca_template_root_ca_03.png | Bin 36244 -> 0 bytes doc/images/xca_template_root_ca_04.png | Bin 49073 -> 0 bytes doc/index.adoc | 33 -- doc/minimaler_parameterinhalt.adoc | 166 -------- doc/protokoll.adoc | 14 - doc/puml/autor_asynchron.puml | 42 -- doc/puml/autor_asynchron.svg | 52 --- doc/puml/autor_synchron.puml | 42 -- doc/puml/autor_synchron.svg | 52 --- doc/puml/empfaenger_asynchron.puml | 45 --- doc/puml/empfaenger_asynchron.svg | 55 --- doc/puml/empfaenger_synchron.puml | 30 -- doc/puml/empfaenger_synchron.svg | 40 -- doc/puml/leser_asynchron.puml | 42 -- doc/puml/leser_asynchron.svg | 52 --- doc/puml/leser_synchron.puml | 28 -- doc/puml/leser_synchron.svg | 38 -- doc/puml/protokoll.puml | 31 -- doc/puml/protokoll.svg | 48 --- doc/puml/sender_asynchron.puml | 41 -- doc/puml/sender_asynchron.svg | 51 --- doc/puml/sender_synchron.puml | 42 -- doc/puml/sender_synchron.svg | 52 --- doc/puml/szenario-definition.puml | 26 -- doc/puml/szenario-definition.svg | 40 -- doc/release_notes.adoc | 83 ---- doc/szenarien.adoc | 77 ---- doc/theme/kosit-theme.yml | 29 -- doc/umsetzungsuebersicht.adoc | 173 --------- other_files/README.md | 1 - other_files/xta_tester.xdb | Bin 196608 -> 0 bytes pom.xml | 209 ---------- run_helm_test.sh | 8 - script/push-docker-image.sh | 33 -- src/main/helm/test-values.yaml | 20 - 64 files changed, 21 insertions(+), 2632 deletions(-) delete mode 100644 .asciidoctorconfig.adoc delete mode 100644 Jenkinsfile delete mode 100644 build/assembly.xml delete mode 100644 build/resources/application-local.yml delete mode 100644 doc/bedienungsanleitung.adoc delete mode 100644 doc/docinfo-footer.html delete mode 100644 doc/docinfo.html delete mode 100644 doc/erstellen_von_zertifikaten.adoc delete mode 100644 doc/images/soapui_cert.png delete mode 100644 doc/images/xca_create_certificate_app_01.png delete mode 100644 doc/images/xca_create_certificate_app_02.png delete mode 100644 doc/images/xca_create_certificate_app_03.png delete mode 100644 doc/images/xca_create_certificate_client_01.png delete mode 100644 doc/images/xca_create_certificate_client_02.png delete mode 100644 doc/images/xca_create_certificate_client_03.png delete mode 100644 doc/images/xca_create_certificate_root_ca_01.png delete mode 100644 doc/images/xca_create_certificate_root_ca_02.png delete mode 100644 doc/images/xca_create_certificate_root_ca_03.png delete mode 100644 doc/images/xca_template_app_01.png delete mode 100644 doc/images/xca_template_app_02.png delete mode 100644 doc/images/xca_template_app_03.png delete mode 100644 doc/images/xca_template_app_04.png delete mode 100644 doc/images/xca_template_client_01.png delete mode 100644 doc/images/xca_template_client_02.png delete mode 100644 doc/images/xca_template_client_03.png delete mode 100644 doc/images/xca_template_client_04.png delete mode 100644 doc/images/xca_template_root_ca_01.png delete mode 100644 doc/images/xca_template_root_ca_02.png delete mode 100644 doc/images/xca_template_root_ca_03.png delete mode 100644 doc/images/xca_template_root_ca_04.png delete mode 100644 doc/index.adoc delete mode 100644 doc/minimaler_parameterinhalt.adoc delete mode 100644 doc/protokoll.adoc delete mode 100644 doc/puml/autor_asynchron.puml delete mode 100644 doc/puml/autor_asynchron.svg delete mode 100644 doc/puml/autor_synchron.puml delete mode 100644 doc/puml/autor_synchron.svg delete mode 100644 doc/puml/empfaenger_asynchron.puml delete mode 100644 doc/puml/empfaenger_asynchron.svg delete mode 100644 doc/puml/empfaenger_synchron.puml delete mode 100644 doc/puml/empfaenger_synchron.svg delete mode 100644 doc/puml/leser_asynchron.puml delete mode 100644 doc/puml/leser_asynchron.svg delete mode 100644 doc/puml/leser_synchron.puml delete mode 100644 doc/puml/leser_synchron.svg delete mode 100644 doc/puml/protokoll.puml delete mode 100644 doc/puml/protokoll.svg delete mode 100644 doc/puml/sender_asynchron.puml delete mode 100644 doc/puml/sender_asynchron.svg delete mode 100644 doc/puml/sender_synchron.puml delete mode 100644 doc/puml/sender_synchron.svg delete mode 100644 doc/puml/szenario-definition.puml delete mode 100644 doc/puml/szenario-definition.svg delete mode 100644 doc/release_notes.adoc delete mode 100644 doc/szenarien.adoc delete mode 100644 doc/theme/kosit-theme.yml delete mode 100644 doc/umsetzungsuebersicht.adoc delete mode 100644 other_files/README.md delete mode 100644 other_files/xta_tester.xdb delete mode 100755 run_helm_test.sh delete mode 100644 script/push-docker-image.sh delete mode 100644 src/main/helm/test-values.yaml diff --git a/.asciidoctorconfig.adoc b/.asciidoctorconfig.adoc deleted file mode 100644 index 53b403d..0000000 --- a/.asciidoctorconfig.adoc +++ /dev/null @@ -1,12 +0,0 @@ -// +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -// + Initial AsciiDoc editor configuration file - V1.0 + -// ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -// -// Did not found any configuration files, so create this at project root level. -// If you do not like those files to be generated - you can turn it off inside Asciidoctor Editor preferences. -// -// You can define editor specific parts here. -// For example: with next line you could set imagesdir attribute to subfolder "images" relative to the folder where this config file is located. -// :imagesdir: {asciidoctorconfigdir}/images -// -// For more information please take a look at https://github.com/de-jcup/eclipse-asciidoctor-editor/wiki/Asciidoctor-configfiles diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 89f5290..c2f8943 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,11 +35,21 @@ test: script: - mvn test $MAVEN_CLI_OPTS +test-helm: + stage: test + before_script: + - apk add --no-cache helm + script: + - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml + - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ + - cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . + verify: stage: test script: - mvn verify $MAVEN_CLI_OPTS + .get-version: before_script: - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS) @@ -67,6 +77,17 @@ push-merge-request-image-nexus: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: manual +push-merge-request-helm-nexus: + stage: publish + extends: .get-version + before_script: + - apk add --no-cache helm + script: + - cd src/main/helm && helm package --version=MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION} + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + when: manual + # Snapshot jobs push-snapshot-image-gitlab: stage: publish diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 5cd094b..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,366 +0,0 @@ -pipeline { - agent { - node { - label 'ozgcloud-jenkins-build-agent-jdk21' - } - } - - environment { - BLUE_OCEAN_URL = "https://jenkins.infra.ozg-cloud.systems/job/xta-test-server/job/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/" - RELEASE_REGEX = /\d+.\d+.\d+/ - SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ - FAILED_STAGE = "" - SH_SUCCESS_STATUS_CODE = 0 - } - - options { - timeout(time: 1, unit: 'HOURS') - disableConcurrentBuilds() - buildDiscarder(logRotator(numToKeepStr: '5')) - } - - stages { - stage('Check Version') { - steps { - script { - FAILED_STAGE = env.STAGE_NAME - def rootVersion = getPomVersion() - - if(isReleaseBranch()){ - if ( !(rootVersion ==~ RELEASE_REGEX)) { - error("Keine Release Version für Branch ${env.BRANCH_NAME}.") - } - } else { - if ( !(rootVersion ==~ SNAPSHOT_REGEX)) { - error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.") - } - } - } - } - } - stage('Set Version') { - when { - not { - anyOf { - branch 'master' - branch 'release' - } - } - } - steps { - script { - FAILED_STAGE=env.STAGE_NAME - JAR_TAG = getPomVersion().replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT") - } - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true" - - } - } - } - - stage('Build XtaTestServer') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - } - - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3 -DelasticTests.disabled=true' - } - } - } - - stage('Deploy to Nexus'){ - steps { - script { - FAILED_STAGE = env.STAGE_NAME - } - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS -P nexus-deploy -DskipTests deploy -Dmaven.wagon.http.retryHandler.count=3' - sh "mvn -s $MAVEN_SETTINGS versions:revert" - } - } - } - stage('Build Docker image') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - } - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS spring-boot:build-image -DskipTests -Dmaven.wagon.http.retryHandler.count=3' - } - } - } - - stage('Tag and Push Docker image') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - IMAGE_TAG = buildVersionName() - - tagAndPushDockerImage(IMAGE_TAG) - - if (env.BRANCH_NAME == 'master') { - tagAndPushDockerImage('snapshot-latest') - - } - else if (env.BRANCH_NAME == 'release') { - tagAndPushDockerImage('latest') - } - } - } - } - - stage('Test, build and deploy Helm Chart') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - HELM_CHART_VERSION = buildVersionName() - - sh "./run_helm_test.sh" - - dir('src/main/helm') { - - sh "helm package --version=${HELM_CHART_VERSION} ." - deployHelmChart(HELM_CHART_VERSION) - } - } - } - } - - - stage('Trigger Dev rollout') { - // TODO reactivate before merge - //when { - //branch 'master' - //} - steps { - script { - FAILED_STAGE = env.STAGE_NAME - - cloneGitopsRepo() - - setNewDevXtaTestServerVersion() - - pushDevGitopsRepo() - } - } - } - stage('Trigger Test rollout') { - when { - branch 'release' - } - - steps { - script { - FAILED_STAGE = env.STAGE_NAME - - cloneGitopsRepo() - - setNewTestXtaTestServerVersion() - - pushTestGitopsRepo() - } - } - } - - stage ('Deploy SBOM to DependencyTrack') { - steps { - script { - IMAGE_TAG = buildVersionName() - - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - withCredentials([string(credentialsId: 'dependency-track-api-key', variable: 'API_KEY')]) { - - catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { - sh "mvn --no-transfer-progress -s $MAVEN_SETTINGS io.github.pmckeown:dependency-track-maven-plugin:upload-bom -Ddependency-track.apiKey=$API_KEY -Ddependency-track.projectVersion=${IMAGE_TAG} -Ddependency-track.dependencyTrackBaseUrl=https://dependency-track.ozg-sh.de" - } - } - } - } - } - } - - stage('Sonar Checks') { - when { - branch 'master' - } - steps { - script { - FAILED_STAGE=env.STAGE_NAME - - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - try { - withSonarQubeEnv('sonarqube-ozg-sh'){ - sh 'mvn -s $MAVEN_SETTINGS sonar:sonar' - } - } catch (Exception e) { - unstable("SonarQube failed") - } - } - } - } - } - } - - post { - always{ - junit testResults: '**/target/surefire-reports/*.xml', skipPublishingChecks: true - } - failure { - script { - if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'release') { - sendFailureMessage() - } - } - } - } -} - - -Boolean isReleaseBranch() { - return env.BRANCH_NAME == 'release' -} - -String getPomVersion(){ - def pom = readMavenPom file: 'pom.xml' - - return pom.version -} - - -Void sendFailureMessage() { - def room = '' - def data = """{"msgtype":"m.text", \ - "body":"XtaTestServer: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER} - Link: ${BLUE_OCEAN_URL}", \ - "format": "org.matrix.custom.html", \ - "formatted_body":"XtaTestServer: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a - href='${BLUE_OCEAN_URL}'>${env.BUILD_NUMBER}</a>"}""" - - if (env.BRANCH_NAME == 'master') { - room = "!GjqhmouBtnDbwUkAjx:matrix.ozg-sh.de" - } - else if (env.BRANCH_NAME == 'release') { - room = "!oWZpUGTFsxkJIYNfYg:matrix.ozg-sh.de" - } - - sh "curl -XPOST -H 'authorization: Bearer ${getElementAccessToken()}' -d '${data}' https://matrix.ozg-sh.de/_matrix/client/v3/rooms/$room/send/m.room.message" -} - -String getElementAccessToken() { - withCredentials([string(credentialsId: 'element-login-json', variable: 'LOGIN_JSON')]) { - return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token - } -} - -Void deployHelmChart(String helmChartVersion) { - withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ - result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=''' + getHelmChartRepository() + ''' -F file=@xta-test-server-'''+helmChartVersion+'''.tgz''', returnStdout: true - if (result != '') { - error(result) - } - } -} - -String getHelmChartRepository(){ - if (env.BRANCH_NAME == 'release') { - return 'ozg-base-apps' - } - return 'ozg-base-apps-snapshot' -} - -Void loginToDockerRepo() { - withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' - } - -} - - -String buildVersionName() { - if (isReleaseBranch()) { - return getPomVersion() - } - return "${getPomVersion()}-${env.BRANCH_NAME}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-") -} - -Void tagAndPushDockerImage(String newTag){ - withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh "chmod +x script/push-docker-image.sh" - sh """ - export DOCKER_USER=${USER} - export DOCKER_PASSWORD=${PASSWORD} - export BRANCH_NAME=${env.BRANCH_NAME} - ./script/push-docker-image.sh ${newTag} ${getPomVersion()} - """ - } -} - -Void configureGit() { - final email = "jenkins@ozg-sh.de" - final name = "jenkins" - - dir("gitops") { - sh "git config user.email '${email}'" - sh "git config user.name '${name}'" - } -} - -Void cloneGitopsRepo() { - withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { - sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/ozgcloud-devops/gitops.git' - } - - configureGit() -} - -Void setNewDevXtaTestServerVersion() { - setNewXtaTestServerGitopsVersion("dev") -} - -Void setNewTestXtaTestServerVersion() { - setNewXtaTestServerGitopsVersion("test") -} - -Void setNewXtaTestServerGitopsVersion(String environment) { - dir("gitops") { - def envFile = "${environment}/application/values/xta-test-server-values.yaml" - - def envVersions = readYaml file: envFile - - envVersions.xta_test_server.image.tag = IMAGE_TAG - envVersions.xta_test_server.helm.version = HELM_CHART_VERSION - - writeYaml file: envFile, data: envVersions, overwrite: true - } -} - -Void pushDevGitopsRepo() { - pushNewGitopsVersion('dev') -} - -Void pushTestGitopsRepo() { - pushNewGitopsVersion('test') -} - -Void pushNewGitopsVersion(String environment) { - dir('gitops') { - if (!hasXtaTestServerValuesFileChanged(environment)) { - return - } - - withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { - sh "git add ${environment}/application/values/xta-test-server-values.yaml" - - sh "git commit -m 'jenkins rollout ${environment} aggregation manager version ${IMAGE_TAG}'" - sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/ozgcloud-devops/gitops.git' - } - } -} - -Boolean hasXtaTestServerValuesFileChanged(String environment) { - return sh (script: "git status | grep '${environment}/application/values/xta-test-server-values.yaml'", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE as Integer -} - diff --git a/build/assembly.xml b/build/assembly.xml deleted file mode 100644 index 79c7b94..0000000 --- a/build/assembly.xml +++ /dev/null @@ -1,48 +0,0 @@ -<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> - - <id>xta2v3</id> - <formats> - <format>zip</format> - </formats> - <baseDirectory>${project.artifactId}</baseDirectory> - <includeBaseDirectory>true</includeBaseDirectory> - <fileSets> - <fileSet> - <directory>${project.build.directory}/pdf</directory> - <outputDirectory>pdf</outputDirectory> - <includes> - <include>*.pdf</include> - </includes> - </fileSet> - <fileSet> - <directory>${project.build.directory}/html</directory> - <outputDirectory>html</outputDirectory> - <includes> - <include>*.html</include> - <include>images/*.png</include> - <include>puml/*.svg</include> - </includes> - </fileSet> - <fileSet> - <directory>${project.basedir}/src/main/resources/store</directory> - <outputDirectory>/</outputDirectory> - <includes> - <include>xta-test-client-john-smith_keystore.p12</include> - <include>xta-test-server_keystore.p12</include> - <include>xta-test_truststore.jks</include> - </includes> - </fileSet> - </fileSets> - <files> - <file> - <source>${project.build.directory}/${project.artifactId}-${project.version}.jar</source> - <outputDirectory>/</outputDirectory> - </file> - <file> - <source>${project.basedir}/build/resources/application-local.yml</source> - <outputDirectory>/</outputDirectory> - </file> - </files> -</assembly> \ No newline at end of file diff --git a/build/resources/application-local.yml b/build/resources/application-local.yml deleted file mode 100644 index 49cc6e1..0000000 --- a/build/resources/application-local.yml +++ /dev/null @@ -1,38 +0,0 @@ -# Konfiguration für den XTA-Server -spring: - servlet: - multipart: - max-file-size: 10MB - max-request-size: 10MB - -server: - port: 8443 - tomcat.max-http-post-size: 10MB - tomcat.max-swallow-size: 10MB - ssl: - # enthaelt den privaten und oeffentlichen Schluessel der Anwendung (SSL-Zertifikat für Webbrowser) - key-store: ./xta-test-server_keystore.p12 - key-store-password: password - key-store-type: pkcs12 - # Alias im KeyStore - key-alias: xta-test-server - key-password: password - # enthaelt alle vertrauenswuerdigen Zertifikate oder Oberzertifikate - trust-store: ./xta-test_truststore.jks - trust-store-password: password - trust-store-type: JKS - client-auth: want -app: - server: - # Extra Port, auf welchem der Server hören soll (für http) - http-port: 8080 - -logging: - level: - ROOT: INFO - # no auto configuration report - org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener: INFO - org.springframework.security: WARN - org.springframework.web: INFO - org.apache.cxf: INFO - diff --git a/doc/bedienungsanleitung.adoc b/doc/bedienungsanleitung.adoc deleted file mode 100644 index 5e1a1f0..0000000 --- a/doc/bedienungsanleitung.adoc +++ /dev/null @@ -1,226 +0,0 @@ -= Bedienungsanleitung -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -In diesem Dokument wird die Verwendung der XTA Test Applikation beschrieben. - -== Starten der Anwendung - -=== Voraussetzungen - -Zum Starten der Anwendung wird mindestens ein Java in der Version 21 benötigt. Ist keine -entsprechende Java Version verfügbar, dann kann von der https://adoptium.net/[Adoptium] -Seite ein OpenJDK heruntergeladen werden. - -Können nicht die mitgelieferten Zertifikate und Keystores verwendet werden, dann sind in -der Datei *application-local.yml* die entsprechenden Konfigurationsparameter anzupassen. -Das Erstellen von KeyStores und TrustStores ist innerhalb des Themas -xref:erstellen_von_zertifikaten.adoc["Erstellen von Zertifikaten"] beschrieben. - -=== Konfigurationsparameter - -Die Konfiguration ist in der *application-local.yml* und einer *config.yaml* Datei abgelegt. Die Anwendung verwendet den Port 8080 -und den Port 8443 als Standard. Sind diese Ports schon belegt, dann sind die entsprechenden -Konfigurationsparameter anzupassen. Sofern die Datei *config.yaml* nicht existiert, so wird diese beim ersten Start der Anwendung erstellt. - -==== Konfiguration in der application*.yml - -|=== -| Konfigurationsparameter | Beschreibung - -| server.port | Https Port der Anwendung -| server.ssl.key-store | Pfad zum KeyStore. Dieser enthält den privaten und öffentlichen Schlüssel der Anwendung -| server.ssl.key-store-password | Passwort des KeyStores -| server.ssl.key-alias | Alias im KeyStore -| server.ssl.key-password | Passwort für den Schlüssel im KeyStore -| server.ssl.trust-store | Pfad zum TrustStore. Dieser enthält alle vertrauenswürdigen Zertifikate oder Oberzertifikate -| server.ssl.trust-store-password | Password des TrustStores -| app.server.http-port | Http Port der Anwendung -| logging.level.ROOT | Generelles Log-Level der Anwendung -| logging.level.<Paketname> | Loglevel für ein Paket und dessen Kinder festlegen - -|=== - -==== Konfiguration in der config.yaml -|=== -| Konfigurationsparameter | Beschreibung - -| protocolMetadata.softwareManufacturer | Hersteller des zu testenden Produkts -| protocolMetadata.softwareName | Name des zu testenden Produkts -| protocolMetadata.softwareVersion | Version des zu testenden Produkts -| protocolMetadata.street | Firmenadresse (Straße) des Herstellers des zu testenden Produktes -| protocolMetadata.streetNo | Firmenadresse (Hausnummer) des Herstellers des zu testenden Produktes -| protocolMetadata.zipCode | Firmenadresse (Postleitzahl) des Herstellers des zu testenden Produktes -| protocolMetadata.city | Firmenadresse (Stadt) des Herstellers des zu testenden Produktes -| protocolMetadata.addressAddition | Firmenadresse (Zusatzangaben) des Herstellers des zu testenden Produktes - -| clientProperties.serverUrl.managementPort | Url zum Management-Port des zu testenden Produkts -| clientProperties.serverUrl.sendPort | Url zum Send-Port des zu testenden Produkts -| clientProperties.serverUrl.msgBoxPort | Url zum Messagebox-Port des zu testenden Produkts -| clientProperties.checkHostnameInCertificate | Soll der Hostname im Server Zertifikat geprüft werden (default=true) -| clientProperties.keyStore | Pfad zum KeyStore. Dieser enthält den privaten und öffentlichen Schlüssel des Clients -| clientProperties.keyStorePassword | Passwort des KeyStores -| clientProperties.keyPassword | Passwort für den Schlüssel im KeyStore -| clientProperties.keyAlias | Alias im KeyStore -| clientProperties.trustStore | Pfad zum TrustStore. Dieser enthält das vertrauenswürdige Zertifikat des Servers oder ein Oberzertifikat -| clientProperties.trustStorePassword | Password des TrustStores -| authorIdentifierConfig.identifierScheme | Ausweisung des Schemas zur Interpretation des PartyIdentifiers/Bezeichners, z.B. iso6523-actorid-upis für Peppol Participant Identifier Scheme. -| authorIdentifierConfig.name | Optionaler menschenlesbarer Name zur Darstellung in User Agents (bekannt z.B. aus eMail). Im XÖV-Umfeld muss hier der Name der Behörde / öffentlichen Stelle eingetragen werden. -| authorIdentifierConfig.value | Eindeutige Identifikation eines Kommunikationspartners anhand einer Kennung. Im XÖV-Umfeld muss hier die eindeutige Kennzeichnung der Behörde eingetragen werden. -| authorIdentifierConfig.organizationCategory | Fachkategorie des identifizierten Kommunikationspartners innerhalb der Domäne. -| readerIdentifierConfig.identifierScheme | Ausweisung des Schemas zur Interpretation des PartyIdentifiers/Bezeichners, z.B. iso6523-actorid-upis für Peppol Participant Identifier Scheme. -| readerIdentifierConfig.name | Optionaler menschenlesbarer Name zur Darstellung in User Agents (bekannt z.B. aus eMail). Im XÖV-Umfeld muss hier der Name der Behörde / öffentlichen Stelle eingetragen werden. -| readerIdentifierConfig.value | Eindeutige Identifikation eines Kommunikationspartners anhand einer Kennung. Im XÖV-Umfeld muss hier die eindeutige Kennzeichnung der Behörde eingetragen werden. -| readerIdentifierConfig.organizationCategory | Fachkategorie des identifizierten Kommunikationspartners innerhalb der Domäne. -| senderIdentifierConfig.identifierScheme | Ausweisung des Schemas zur Interpretation des PartyIdentifiers/Bezeichners, z.B. iso6523-actorid-upis für Peppol Participant Identifier Scheme. -| senderIdentifierConfig.name | Optionaler menschenlesbarer Name zur Darstellung in User Agents (bekannt z.B. aus eMail). Im XÖV-Umfeld muss hier der Name der Behörde / öffentlichen Stelle eingetragen werden. -| senderIdentifierConfig.value | Eindeutige Identifikation eines Kommunikationspartners anhand einer Kennung. Im XÖV-Umfeld muss hier die eindeutige Kennzeichnung der Behörde eingetragen werden. -| senderIdentifierConfig.organizationCategory |Fachkategorie des identifizierten Kommunikationspartners innerhalb der Domäne. -| lookupServiceUri | Beim Methodenaufruf "lookupService" aus dem XTA Standard wird der angegebene Service URI verwendet. -| deliveryAttributesServiceQuality | Das Element ServiceQuality ist vorgesehen, um in den Daten des Transportauftrags die Service Qualitäten ansprechen zu können, die bei der Ausführung des Transportauftrags zu berücksichtigen sind. -| qualifierConfig.qualifierSubject | Dieses optionale Element bietet Raum für informatorischen Begleittext. -| qualifierConfig.qualifierService | Spezifischer Dienst im Kontext eines bestimmten Geschäftsfalls. -| qualifierConfig.messageTypeCode | Nachrichtentypen werden über Codes aus Listen definiert -| qualifierConfig.messageTypeListUri | Codeliste von Nachrichtentypen -| qualifierConfig.messageTypeListVersionId | Version der Codeliste -| qualifierConfig.messageTypePayloadSchema | Angabe des Namespace für den Nachrichtentyp als URI -| qualifierConfig.businessScenarioUndefined | Achtung: wenn ausgefüllt, werden die restlichen Angaben zum Geschäftsszenario ignoriert! Freitextliche Angabe eines nicht in einer Codeliste definierten Geschäftsszenarios. -| qualifierConfig.businessScenarioCode | Code innerhalb der Codeliste, um das Szenario zu bestimmen -| qualifierConfig.businessScenarioListUri | Pfad zum Dokument, mit welchem das Szenario definiert wird (Codeliste) -| qualifierConfig.businessScenarioListVersionId | Version der Codeliste - -|=== - -=== Start - -Eine Konsole im Programmordner starten und folgendes Kommando ausführen. Der Platzhalter -ist mit der jeweiligen Version zu ersetzen. - ----- -java -jar xta-test-server-[VERSION].jar --spring.config.import=file:./application-local.yml ----- - -Sofern mehrere Umgebungen gleichzeitig gestartet werden sollen, so kann man sowohl die *application-xxx.yml*, als auch die -genutzte Serverkonfiguration beim Start der Anwendung mitgeben. - ----- -java -jar xta-test-server-[VERSION].jar --spring.config.import=file:./application-local.yml -DconfigFileName=file:config_second.yaml ----- - -Der Parameter "-DconfigFileName=file:config_second.yaml" ist wie folgt aufgebaut: - -- -D: Angabe eines Startparameters für die Anwendung -- configFileName: Parameter, welcher gesetzt werden soll -- file:config_second.yaml: "file" bedeutet nutze eine lokale Datei, "config_second.yaml" ist der Name der zu nutzenden Config-Datei. - - -Nachdem der Server gestartet ist, kann die Benutzeroberfläche über http://localhost:8080 -oder https://localhost:8443 geöffnet werden. Wurde der Port geändert, so ist dieser in -entsprechen in der Url anzupassen. - -== Benutzeroberfläche - -Die XTA Test Applikation besitzt eine Weboberfläche, über die die Anwendung konfiguriert -und gesteuert wird. - -.Menüs -* <<Menue-Steuerung, Steuerung>> -* <<Menue-Einstellungen, Einstellungen>> -* <<Menue-Anpassung, Content-Anpassung>> -* <<Menue-Report, Report>> - -=== Steuerung [[Menue-Steuerung]] - -.Abschnitt Report - -Über den Button "Report zurücksetzen" kann ein Report gelöscht/zurückgesetzt werden. - -.Abschnitt Szenario - -Szenarien können hier ausgewählt und gestartet werden. Nach der Auswahl eines Szenarios -wird darunter eine entsprechende Beschreibung angezeigt. Die Beschreibung enthält welche -Rolle die XTA Test Applikation einnimmt. -Nachdem ein Szenario gestartet wurde, ist es möglich dieses über den Button "Aktuelles -Szenario Neustarten" zurückzusetzen. - -=== Einstellungen [[Menue-Einstellungen]] - -In diesem Menü können die folgenden Informationen angepasst werden: - -* Protokolleinstellungen -* Verbindungseinstellungen -* Endpunkte - -Die Einstellungen werden über die Laufzeit des Programmes hinweg gespeichert und müssen nicht -bei jedem Neustart neu eingegeben werden. - -.Protokolleinstellungen - -Hier kann der Softwarehersteller und das Produkt für den Report konfiguriert -werden. - -.Verbindungseinstellungen -Hier können die Parameter für die Vertrauensstellung der Software und die Client-Zertifikate -konfiguriert werden. Ebenso kann die Prüfung auf korrekte Hostnamen aktiviert oder deaktiviert werden. - -.Endpunkte -In diesem Menüpunkt können die zu nutzenden Endpunkte angepasst werden, welche für die Kommunikation -als XTA-Client genutzt werden sollen. Die URL sollten in einer Vertrauenstellung mit dem XTA-Server sein -um keine Zertifikatsfehler hervorzurufen. Die Endpunkte sind generell ohne den Zusatz "?wsdl" anzugeben. - - - -=== Content-Konfiguration [[Menue-Anpassung]] - -In diesem Abschnitt kann der Inhalt des Generic Content Containers für den Nachrichtenversand -angepasst werden. Die Einstellungen, welche hier getroffen werden, werden in allen -Antworten / Anfragen von Client und Server verwendet. - -Man hat die Möglichkeit, zwischen einem Standardcontainer und einem angepassten Container -zu wählen. Der Standardcontainer ist in der Anwendung vordefiniert und kann über den -Button „Vorschau herunterladen“ eingesehen werden. Bei dem angepassten Container hat man -selbst die Möglichkeit, unverschlüsselte oder verschlüsselte Container zu erstellen. -Dazu müssen die entsprechenden Parameter in der Eingabemaske eingetragen und gespeichert -werden. Den gespeicherten Container kann man sich über „Vorschau herunterladen“ anzeigen -lassen. - -=== Report [[Menue-Report]] - -Zeigt den XTA Konformitätsbericht. Dieser kann über Drucken in ein PDF Dokument überführt -werden. - -== Nutzung der Schnittstellen - -Nach dem Start der Testumgebung sind die Schnittstellen unter Url http://localhost:8080/MB_XTA-WS -bzw. https://localhost:8443/MB_XTA-WS aufrufbar, sofern die Standardkonfiguration verwendet wurde. - -Für die unterschiedlichen Ports des XTA-Service sind unter der genannten Adresse alle Serviceadressen genannt. - -Die Testumgebung prüft bei jeder Anfrage, ob alle Sicherheitseinstellungen (Policies) eingehalten wurden. Sofern eine oder mehrere nicht -eingehalten wurde, so wird ein SOAP-Fault mit der entsprechenden Beschreibung zurück gegeben. -Die einzuhalten Policies sind aktuell: - -- WS-Adressing -- MTOM (SOAP Message Transmission Optimization Mechanism) -- Nutzung von HTTPS -- Gegebenenfalls muss bei Antworten eine Signaturbestätigung (SignatureConfirmation) mit gesendet werden - -=== Aufruf der WSDL-Datei -Die WSDL-Datei ist immer unter der Adresse des Services mit dem Zusatz ?wsdl aufrufbar (z.B. https://localhost:8443/services/XTAService/ManagementPort?wsdl ). - -=== HTTPS Kommunikation - -Für die Kommunikation mittels HTTPs ist ein Client-Zertifikat notwendig, um den Client gegenüber der Testumgebung zu authentifizieren. Innerhalb der ZIP-Dateien der Testumgebung sind bereits mehrere Zertifikate und Keystores hinterlegt, die für die Kommunikation mit der Testumgebung genutzt werden können: - -* xta-test-client-john-smith_keystore.p12 - Dieser Keystore beinhaltet ein Client-Zertifikat, das für die Kommunikation mit der Testumgebung verwendet werden kann. Sofern die Testumgebung in der Standardkonfiguration gestartet wurde, stuft die Umgebung das Zertifikat als vertrauenswürdig ein. - - -=== Test mit SoapUI - -Um einfache XTA-Anfragen mit der Testumgebung zu testen kann das Tool SoapUI mit dem im Ordner "soapui" liegenden Beispielprojekt verwendet werden. Für eine erfolgreiche Herstellung einer HTTPs-Verbindung muss das Client-Zertifikat in den Einstellungen hinterlegt werden. -Dieses Zertifikat wird anschließend für alle Requests genutzt. - -image:./images/soapui_cert.png["Notwendige Einstellungen für Client-Zertifikate in SoapUI"] - diff --git a/doc/docinfo-footer.html b/doc/docinfo-footer.html deleted file mode 100644 index aa814ac..0000000 --- a/doc/docinfo-footer.html +++ /dev/null @@ -1,4 +0,0 @@ -<p class="footer-text"> -<!-- We can use document attributes: --> -Copyright © 2021-{docyear} Koordinierungsstelle für IT-Standards (KoSIT) | <a href="https://www.xoev.de/">https://www.xoev.de</a> -</p> \ No newline at end of file diff --git a/doc/docinfo.html b/doc/docinfo.html deleted file mode 100644 index 1048109..0000000 --- a/doc/docinfo.html +++ /dev/null @@ -1,17 +0,0 @@ -<style> -/* Change CSS overflow for table of contents. */ -#toc.toc2, #toc { overflow: scroll; } - -/* Change styling for footer text. */ -.footer-text { - color: rgba(255,255,255,.8); - background: rgba(0,0,0,.8); - padding-left: 1.25em; -} -.footer-text>a:link, .footer-text>a:visited { - color: rgba(255,255,255,.8); -} -#footer-text { - padding-bottom: 0; -} -</style> \ No newline at end of file diff --git a/doc/erstellen_von_zertifikaten.adoc b/doc/erstellen_von_zertifikaten.adoc deleted file mode 100644 index fb40413..0000000 --- a/doc/erstellen_von_zertifikaten.adoc +++ /dev/null @@ -1,226 +0,0 @@ -= Erstellen von Zertifikaten -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -== Tools - -Für die einfache Erstellung der Privaten Schlüssel, der Zertifikate und der Zertifikatspeicher können folgende Tools verwendet werden. - - * https://hohnstaedt.de/xca/[XCA] - * https://keystore-explorer.org/[KeyStore Explorer] - -Wer mit OpenSSL und dem Java Keytool vertraut ist, kann auch diese Programme für die Erzeugung der benötigten Dateien verwenden. -Im folgenden ist die Erstellung mit den oben genannten Tools beschrieben. - -== Erstellen einer CA mit XCA - -Das XCA Programm öffnen und eine neue Datenbank erstellen (Menü -> Datei -> Neue Datenbank). - -=== Vorlagen - -Damit nicht bei jedem Zertifikat erneut die richtigen Einstellungen getroffen und alle benötigten Felder ausgefüllt werden müssen können Vorlagen angelegt werden. -Wir legen uns für die Root CA, für die Applikation (Server) und für die Clients Vorlagen an. - -==== Vorlage für Root CA - -Im Tab Vorlagen den Button "Neue Vorlagen" wählen. Im Auswahldialog "[default] CA" wählen. - -Die Vorlage entsprechend der Screenshots ausfüllen. - -.Tab Inhaber -image:./images/xca_template_root_ca_01.png["Tab Inhaber"] - -.Tab Erweiterungen -image:./images/xca_template_root_ca_02.png["Tab Erweiterungen"] - -.Tab Schlüsselverwendung -image:./images/xca_template_root_ca_03.png["Tab Schlüsselverwendung"] - -.Tab Netscape -image:./images/xca_template_root_ca_04.png["Tab Netscape"] - -.Tab Erweitert -Hier sollte kein Text in rot enthalten sein. - -.Tab Kommentar -Ein ggf. enthaltener Kommentar kann entfernt werden. - -==== Vorlage für die Applikation - -Im Tab Vorlagen den Button "Neue Vorlagen" wählen. Im Auswahldialog "[default] TLS_server" wählen. - -Die Vorlage entsprechend der Screenshots ausfüllen. - -.Tab Inhaber -image:./images/xca_template_app_01.png["Tab Inhaber"] - -.Tab Erweiterungen -Unter "X509v3 Subject Alternative Name" alle alternativen DNS Namen eintragen (inkl. IPs). Wurde ein gültiger Domainname als "commonName" eingetragen, -dann kann dieser mit "DNS:copycn" übernommen werden. - -image:./images/xca_template_app_02.png["Tab Erweiterungen"] - -.Tab Schlüsselverwendung -image:./images/xca_template_app_03.png["Tab Schlüsselverwendung"] - -.Tab Netscape -image:./images/xca_template_app_04.png["Tab Netscape"] - -.Tab Erweitert -Hier sollte kein Text in rot enthalten sein. - -.Tab Kommentar -Ein ggf. enthaltener Kommentar kann entfernt werden. - -==== Vorlage für die Clients - -Im Tab Vorlagen den Button "Neue Vorlagen" wählen. Im Auswahldialog "[default] TLS_client" wählen. - -Die Vorlage entsprechend der Screenshots ausfüllen. - -.Tab Inhaber -Im Feld "commonName" den Benutzernamen und in das Feld "emailAddress" dessen Email Adresse eintragen. - -image:./images/xca_template_client_01.png[Tab Inhaber] - -.Tab Erweiterungen -image:./images/xca_template_client_02.png[Tab Erweiterungen] - -.Tab Schlüsselverwendung -image:./images/xca_template_client_03.png[Tab Schlüsselverwendung] - -.Tab Netscape -image:./images/xca_template_client_04.png[Tab Netscape] - -.Tab Erweitert -Hier sollte kein Text in rot enthalten sein. - -.Tab Kommentar -Ein ggf. enthaltener Kommentar kann entfernt werden. - -=== Erstellen der Zertifikate - -==== Zertifikat der Root CA - -Im Tab "Zertifikate" den Button "Neues Zertifikat" wählen. - -Das Zertifikat entsprechend der Screenshots ausfüllen. - -.Tab Herkunft -In der Auswahl "Vorlage für das neue Zertifikat" die Vorlage "Root CA" auswählen und anschließend auf den Button "Alles übernehmen" drücken. -Jetzt wurden alle Felder mit den Werten der Vorlage befüllt. - -image:./images/xca_create_certificate_root_ca_01.png[Tab Herkunft] - -.Tab Inhaber -Zuerst im Feld "Interner Name" "XTA Tester Root CA" eintragen. Anschließend über den Button "Erstelle einen neuen Schlüssel" einen neuen Privaten Schlüssel erzeugen. - -image:./images/xca_create_certificate_root_ca_02.png[Tab Inhaber] - -Nachdem der neue Schlüssel erstellt wurde sollte dieser im Auswahlfeld "Privater Schlüssel" automatisch ausgewählt sein. - -image:./images/xca_create_certificate_root_ca_03.png[Tab Inhaber] - -Weitere Anpassungen sind nicht notwendig und das Zertifikat kann erstellt werden. - -==== Zertifikat der Applikation - -Im Tab "Zertifikate" den Button "Neues Zertifikat" wählen. - -Das Zertifikat entsprechend der Screenshots ausfüllen. - -.Tab Herkunft -In der Gruppe "Unterschreiben" die Option "Verwende dieses Zertifikat zum Unterschreiben" wählen und die Root CA auswählen. -In der Auswahl "Vorlage für das neue Zertifikat" die Vorlage "XTA Tester Application" auswählen und anschließend auf den Button "Alles übernehmen" drücken. -Jetzt wurden alle Felder mit den Werten der Vorlage befüllt. - -image:./images/xca_create_certificate_app_01.png[Tab Herkunft] - -.Tab Inhaber -Zuerst im Feld "Interner Name" "XTA Tester Application" eintragen. Anschließend über den Button "Erstelle einen neuen Schlüssel" einen neuen Privaten Schlüssel erzeugen. - -image:./images/xca_create_certificate_app_02.png[Tab Inhaber] - -Nachdem der neue Schlüssel erstellt wurde sollte dieser im Auswahlfeld "Privater Schlüssel" automatisch ausgewählt sein. - -image:./images/xca_create_certificate_app_03.png[Tab Inhaber] - -Weitere Anpassungen sind nicht notwendig und das Zertifikat kann erstellt werden. - -==== Zertifikat eines Clients - -Im Tab "Zertifikate" den Button "Neues Zertifikat" wählen. - -Das Zertifikat entsprechend der Screenshots ausfüllen. - -.Tab Herkunft -In der Gruppe "Unterschreiben" die Option "Verwende dieses Zertifikat zum Unterschreiben" wählen und die Root CA auswählen. -In der Auswahl "Vorlage für das neue Zertifikat" die Vorlage "XTA Tester Client" auswählen und anschließend auf den Button "Alles übernehmen" drücken. -Jetzt wurden alle Felder mit den Werten der Vorlage befüllt. - -image:./images/xca_create_certificate_client_01.png[Tab Herkunft] - -.Tab Inhaber -Zuerst im Feld "Interner Name" "XTA Tester Client [NAME]" eintragen und noch commonName und emailAddress ausfüllen. Anschließend über den Button -"Erstelle einen neuen Schlüssel" einen neuen Privaten Schlüssel erzeugen. - -image:./images/xca_create_certificate_client_02.png[Tab Inhaber] - -Nachdem der neue Schlüssel erstellt wurde sollte dieser im Auswahlfeld "Privater Schlüssel" automatisch ausgewählt sein. - -image:./images/xca_create_certificate_client_03.png[Tab Inhaber] - -Weitere Anpassungen sind nicht notwendig und das Zertifikat kann erstellt werden. - -== Erstellen des Keystores - -.Privaten Schlüssel der Applikation exportieren -In XCA in den Tab "Private Schlüssel" wechseln und den Schlüssel "XTA Tester Application" wählen. Über den Button "Export" öffnet sich ein Export-Dialog. -Den Schlüssel im "PEM" Format unter dem Dateinamen "XTA_Tester_Application.key.pem" exportieren. - -.Zertifikat der Applikation exportieren -In XCA in den Tab "Zertifikate" wechseln und das Zertifikat "XTA Tester Application" wählen. Über den Button "Export" öffnet sich ein Export-Dialog. -Als Exportformat "PEM Kette" wählen und das Zertifikat unter dem Dateinamen "XTA_Tester_Application.pem" exportieren. - -.Erstellen des Keystores mit dem KeyStore Explorer -Öffnen des *KeyStore Explorers* und einen neuen "PKCS #12" Schlüsselspeicher erzeugen. Anschließend "Schlüsselpaar importieren" wählen. Im sich öffnenden Dialog -"OpenSSL" wählen. Im folgenden Dialog die CheckBox "Verschlüsselter privater Schlüssel" deaktivieren und in die entsprechenden Felder den Pfad zum privaten Schlüssel -und dem Zertifikat eintragen. Nach dem Import als Alias "xta-tester-application" verwenden. Jetzt muss noch ein Passwort vergeben werden. -Zum Abschluss den Keystore noch speichern, auch hier ist ein Passwort anzugeben. Bitte das gleiche Passwort verwenden. Das vergebene Passwort ist später in der -application.yml Datei zu konfigurieren. - -== Erstellen des Truststores - -.Root CA exportieren -In XCA in den Tab "Zertifikate" wechseln und das Zertifikat "XTA Tester Root CA" wählen. Über den Button "Export" öffnet sich ein Export-Dialog. -Als Exportformat "PEM" wählen und das Zertifikat unter dem Dateinamen "XTA_Tester_Root_CA.crt" exportieren. - -.Erstellen des Truststores mit dem KeyStore Explorer -Öffnen des *KeyStore Explorers* und einen neuen "JKS" Schlüsselspeicher erzeugen. Anschließend "Vertrauenswürdiges Zertifikat importieren" wählen. Im sich öffnenden Dialog -das exportierte Zertifikat auswählen und anschließend noch als Alias "XTA Tester Root CA" eintragen. Zum Abschluss den Truststore speichern. - -== Erstellen einer p12 Datei für einen Client - -Es gibt zwei Möglichkeiten. -Zum einen kann in XCA im Tab "Zertifikate" das Zertifikat inklusive privatem Schlüssel als -p12-Datei exportiert werden. Dabei ist es wichtig den Eintrag mit Zertifizierungskette zu wählen. -Die zweite Möglichkeit ist den privaten Schlüssel und das Zertifikat getrennt zu exportieren und anschließend die p12-Datei mit dem KeyStore -Explorer zu erzeugen. - -.Privaten Schlüssel des Clients exportieren -In XCA in den Tab "Private Schlüssel" wechseln und den Schlüssel "XTA Tester Client [Name]" wählen. Über den Button "Export" öffnet sich ein Export-Dialog. -Den Schlüssel im "PEM" Format unter dem Dateinamen "XTA_Tester_Client_[NAME].key.pem" exportieren. - -.Zertifikat des Clients exportieren -In XCA in den Tab "Zertifikate" wechseln und das Zertifikat "XTA Tester Client [Name]" wählen. Über den Button "Export" öffnet sich ein Export-Dialog. -Als Exportformat "PEM Kette" wählen und das Zertifikat unter dem Dateinamen "XTA_Tester_Client_[Name].pem" exportieren. - -.Erstellen der p12 Datei mit dem KeyStore Explorer -Öffnen des *KeyStore Explorers* und einen neuen "PKCS #12" Schlüsselspeicher erzeugen. Anschließend "Schlüsselpaar importieren" wählen. Im sich öffnenden Dialog -"OpenSSL" wählen. Im folgenden Dialog die CheckBox "Verschlüsselter privater Schlüssel" deaktivieren und in die entsprechenden Felder den Pfad zum privaten Schlüssel -und dem Zertifikat eintragen. Nach dem Import als Alias "\[Name\] \(xta tester root ca\)" verwenden. Jetzt muss noch ein Passwort vergeben werden. -Zum Abschluss den Keystore noch speichern, auch hier ist ein Passwort anzugeben. Bitte das gleiche Passwort verwenden. Das Passwort wird benötigt wenn der Keystore auf -dem Client eingespielt wird. - diff --git a/doc/images/soapui_cert.png b/doc/images/soapui_cert.png deleted file mode 100644 index 8984be5b12033460f1d819af0c854636fe9cfe31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79315 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�^U5U>Z*b0EP1=?JH+j^uAci_wCJ_%F4rYTijM( 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 diff --git a/doc/images/xca_create_certificate_app_01.png b/doc/images/xca_create_certificate_app_01.png deleted file mode 100644 index b0b7d0eda79101839ae02cfba80701dc7df7003e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26250 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 diff --git a/doc/images/xca_create_certificate_app_02.png b/doc/images/xca_create_certificate_app_02.png deleted file mode 100644 index c0b5d2324af73b1a97d9d38c3499c4b52957b120..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11607 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 diff --git a/doc/images/xca_create_certificate_app_03.png b/doc/images/xca_create_certificate_app_03.png deleted file mode 100644 index 59dee0a19f7aab640b472fbb94298725b22d48c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25564 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%0D*<@L#f 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 diff --git a/doc/images/xca_create_certificate_client_01.png b/doc/images/xca_create_certificate_client_01.png deleted file mode 100644 index dac78b0ce950c25a82a12cda362b933517f04010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26157 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 J);T3K0RS#`L8Jfx diff --git a/doc/images/xca_create_certificate_client_02.png b/doc/images/xca_create_certificate_client_02.png deleted file mode 100644 index 8599feaf2e395861c4fbc321b70fd3222122955c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11687 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 VDNDC@F)%PNc)I$ztaD0e0sz%=U1I<M diff --git a/doc/images/xca_create_certificate_client_03.png b/doc/images/xca_create_certificate_client_03.png deleted file mode 100644 index 002268dee251fbe78ae352a87e75d055273962d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25594 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 diff --git a/doc/images/xca_create_certificate_root_ca_01.png b/doc/images/xca_create_certificate_root_ca_01.png deleted file mode 100644 index 9b0b8a43caa734170eae04638dfa0d48c11a5345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24762 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 diff --git a/doc/images/xca_create_certificate_root_ca_02.png b/doc/images/xca_create_certificate_root_ca_02.png deleted file mode 100644 index d0985f43c6b4afcc724f6d0b4187c08e002cf92b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11412 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 a*1H{gvXQqiHkN^bfx*+&&t;ucLK6VZp_4lR diff --git a/doc/images/xca_create_certificate_root_ca_03.png b/doc/images/xca_create_certificate_root_ca_03.png deleted file mode 100644 index 91bc9bdc32ba258c9ad513cb941bcae2011afa46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25356 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 diff --git a/doc/images/xca_template_app_01.png b/doc/images/xca_template_app_01.png deleted file mode 100644 index 6d0e18e2fa652e6ad63b64f1e947970d19c83a5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23597 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ⅇH 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 diff --git a/doc/images/xca_template_app_02.png b/doc/images/xca_template_app_02.png deleted file mode 100644 index e206d4898d0c7a5f94b29ba224fdd11ca22a5d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30739 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≈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 L{an^LB{Ts5<Y;(U diff --git a/doc/images/xca_template_app_03.png b/doc/images/xca_template_app_03.png deleted file mode 100644 index 0056d1fcd2c4142b5cacd2d227b4e205a113296b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36351 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 GgeCy1{<H%C diff --git a/doc/images/xca_template_app_04.png b/doc/images/xca_template_app_04.png deleted file mode 100644 index 042761e9d0a1478b53f99a7a6c48de5fea302d0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48166 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 diff --git a/doc/images/xca_template_client_01.png b/doc/images/xca_template_client_01.png deleted file mode 100644 index e38d0ac8719e807b5d7d3b67c3b21334bac81862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23389 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 diff --git a/doc/images/xca_template_client_02.png b/doc/images/xca_template_client_02.png deleted file mode 100644 index 03139ca36206f03ef583d69eae4d990f9a037c5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29667 zcmeAS@N?(olHy`uVBq!ia0y~yV0z2Iz%-YGiGhJZ;@^Rf3=9m6#X;^)4C~IxykuZt zU`coMb!1@J*w6hZk(GggfwRCPvY3H^?=T269?xHq!oa{FRN@*@5}cn_Ql40p%HUp< znwnRfkzW!Q%E8LOP#opy;uum9_x3L59GR!J&+9!K3X`g3*>895E!*(9NT&L){~QOW zO}7rm<>yqIZ<Ia$Op5QcBG1Rx%^y{xH?}(W9FQ=c;oZP+ck%CQ9!}3aUWf@XajNvT z2zWR-sarXSFaBSAHQ4`ZaO~x~m+xK<{ad;Jm+9v#>*qaRx$51_s(r5{J@@{5_A39w zgM-cN{BkxGDIXP!&sZ`rG^|lP4kDFskgu$c&#@?c^Wot1_=>v2>)zfzKgTk8)v24C zm-oxmrGD>T9e-<E#s7b~%eWXA0)$<k&e*$qo6Y|#m)5?%E>~50|7CFg9J{~AUIwq< z|MA$z<l}sAYaiZRdwO|(oY}*v;`8f1pWU3s!@%J1Rdix<pKNX3)jjIV?RFL1xnTPF zc3f@g^MlO#dw;#+)_;FzNABxaUxnr8{=Yo?`QP8=+qe1Kl)h?_WM*IpsEvI-BiX%A zXSP|*uV!ZV```4F-~T&$O?P$tjeTjar=|L@o%!|2q>Y>Ff2~dY|8;VI{kQekdUt(3 z(&-Gcdxf!e*_$61+U>4*|NOGtzV^q5#LbJtjuc*B7n^M+vq+<CX0K4`+~jXL_xI)e zdcpd*&h**z|5f)J-k+;ZdbCIVn7v{7pD&q*m-)$AB_7x=_pbWo;rY8tuKu;JeY^E- zTF=#McUI?nx8Ll@jg-}`y*gP-<*lD`J6rORH&txgZ%qDkx>Wnss@b={urV-P-Ij52 zkz+Gk=MSUQQz9D^?$v(3o94c@V^7h+)_hU<v)d*`=)_&OOglZx^mJNJwCVee*W&B{ zPg@^vTk;~-S#Hnchwb%$4=|V8eeyWH;eGAvegFT3fB$>k->&j@IlpYxsh+})rMGpi zB|ZFhxm9D=>PmNS@9WytNivf(m#qnzU=i*5!?=CwD_K)zsehad4RT-8>%XNdU7pb^ z)wOimjWo$!=L~00(~Z7pR`qxCVYNG-o9D-Up8ET}e9is6+wa%^pZon@_4C8u|7RUp z%PgP2uP){D)zxi(lm7o(n%3j3BDyu9v-R|8$)tG6hsuSVI@Pgj?lrwSpQH6OwrpR> z`%HF*l85hhzkhdi_4Qw0U!N_@z4<0dI?X+D*EvJ!={k|7-#7ZMmY-eqpTGXvm#5Y5 z_tu`6uv@-ngR70)?(gBr?RRWnK8!yvSNPr7zwh4m{C$$bR~0Au++Q*^`i;hxd8cD% zy;GRJ_gUKS&+4x4E}mZaBV)zZi?PbWYDQ;1G~APYFW1F)rFEaK?lP%$ClB&u#pkT# zYddmkV)Loq4>z(}E=T5WpZRau_M~dj%6W0ynbPGf%@@8F_K*{@Z2a)x;YCIU(~mzM z_jm7J|082t^`WS#3A^NzTJ(y}oD^1{H^-vz=^OWLc@meueenPPcb5MB@2jKTdTTPy z%y5s6mY;3&r}1WRn|_o<;?+|pWo0*ie;b|Ac68-borq^nNe8{P+<$F1y**W5r*-qq zvZTOuE4E2ZwF@xomUyw|N}TuFXB#cAO!#ptSAB}_O`+BW?U%1y;W_v5tjEp1vMH*| z=ij>-YQFcpW%2HCvrzA|&wO&q+81;4bk1+M%*znqy#KTH{@~yDdpZR_E_Jg^yMJzO za^1hrOM~0r-LWY@_`y1V|F_fpe7~me-0Y?sYxVi0diuH;lf=8HG|$@^XP=(7Eq3>_ z_xJbT;^`Lh4l6Fcv`JO`%#BT}R<xR^?A~!YF3Ec342%6YGAo#c`(ArUzL2|kO-a@y zbYgy*#n&g@SC4-?9CFDqIrpMT$<iHpo$2#x@;o<BwK<~8#E|8FXSTR*REk;Ep<7Y^ zVqWeP)vl}k`_)^G@BZ%3D@B9l_OJiBi~Zly|BoUMZ@2mX<Xi6QvYg02m%h2~j*I(r zO52-HCZg`ghcx3esbXvRHtsvx)EM_=Pg0U)p>D}-PuKc+8<e8%9bj6nyp+GBKO=i0 zUsQnL{I`vh_*O0N^hr~Zy^`C$`R2u=rQI@T-lwUaeYUMz_K_GP!&YUdGkvnwXWY)N z?M<5w$`B_Ejq5+pwqCd6(aN31eX{rV7C)Z#^83GE-?H}?{V&hIvm@){J=@#g-`(3& z{(V{aciZ|851uV{kFR*#`!_AZLnr%Sk?O2_O}f*KzxVQg{ysIubk`}>b**{U8#VYd zR|g%McjG`t{p#0^+a%an@;4Q96sHw=teJmDw_a8wPOl(fd2aU0=QHn|wJ(m`(mZv^ zO{KR=?K@l<9NzLsnXFiTuRn73lqjL@qpy{Y-zon4b^nh?;`8J8t=atf>}7R-yS*6~ z{eOM^{jC1yk6%AO_sd#-x|QwDCwr^@$A`wn?)>wuzPhESFP9XXkUdK{HfeTSlo{{t zEjwK;RW`jjS^21RyYrgd70T?NtuznLJZr!1DZfs^kp~T|_2<o3oan34ez~A1{|Spp zdE1e)iO*+#usJbz*R(&?`+n63rFU=ZmR5>#WM^=A+Yz1r|KH!UZn>S#>wQmYLyOvp z$!hn?ZeQ8`t}1o*AA5!SHJ{H;H_MkRJgvL^&)fUkZ2x?i`1kkyipRae>V5nF{py^o ze&3?n>{GnQqS;4`?k9Wi;Zb_R&EUXRGBNqunOR#O&rFZAFZ0PODU-9VsrY-SwZG>7 zZ|C|ShnaVmcc&D8dlUK5(d3VLa)8}Ll{e86rt0@KU+!GY%n-0gujowi>FM(K_Wyq) z`8n?NO7nX+HfCOa5uN|{togo=ue|kNDrtHB4_Wrj(n&u2@mUE52eXoi$qWn(uf#0b z7#LDSi6Ez*G<0WRVA#|q!_2_2sf#+~sz)Cl9<KiOCURra&leXLZ_B%zwMx{rkCB04 z>X!Wb`_kuCKKpoF{_pqbecx|5+gD|MJ$(F|-_NtQ`^|Q1gPoxD;KRei+1J<AzF4TZ zo#)rX3+?Rd;y<5|KK^XZ>zKNCcP8h{%=@@hzpm`}x3|l(pH4_-U|5kIy*;nC<VExM zyVs4<zn!V{KU4c|=kvJQuc3lcN7gm--QDS4Qd08g)Aa5CKd|4I{PyF)^Lf(0e|7%M z-?#J0nVCn^{kG4y-23Ov&CvXLu~ymF*1zBLna_AZ(FsEahAUg=T9^OZKl^{?s~gdL z?`Qq^6U^T)`)~5^cmEFBmj6F~VIlwj_vdS#?eeexHQ)aC&DsB+<?p+G<%@^+>0hO< z`DCq9+`=yJtNm?dwM{4fo?X@x=I?jEFV>xXe1GLH&xuif^I}T>{5ZAPeY(8$wkJO} zF8x$kbMoco(|+^w_CKHZ-hZ~))t>bNMLY})U-Qn-v*o{2e}Aogc3t7+55>oC9eMoq z@8vMvEXhBg>-T)I-~arycx=hxcKbVD)|J;jJ;eS0{QH0Je6PptPCYGVys3y!-tNz% zZhgJjT_sOWBsR12&$4-VT|amJmfGys9~XbVUy=Ot;$m%nxtM+5r!L)Hu6yh2rzYFo z;_q(n{&BUoJHEE`<G;V%eKL_HpPo!Q-2S}gb#(mwJ(ZhhZWICqR7yjK;Opz__rE-r zZN8=^z+LiV#pkUv^>gJ4--`dM{_kJ6>E~j3(ZFY~xb^?E-`l(Y!}a>T+1J-OxAVP} zx1Z|LQ}uLec-i}Vx=hDErTU+nZT@{<b#&dYeES{m=gHr%KHu;%xNc`|_UqNZ)8uM% z4`#2|wJS*YIM24b>|M-;(${x<XQ$bIKGVZ1z0CISmo2=~%kuA76rY}Ed3)R0dwYL( zHnWS*wb=OOta<pGJC>i1+y9#`9#?TtX3cGg(>cWcmwi54|MS}RxK9`P*XQlm?=f<} z{q2p!{r}zb|DB8fm-^rSM|1YQ-}kcb|2%j8`^(~|qVZCuuO7C`*FD(xyYBL(Pp=J= z-OkVde`Jzsx0v1>`_flWPEJ-obzJ5145P|RZ*Fd0=0D#o>q>`w&Hvl>f8zd6?EhEt zXNBYEw7;Kr@*XbFn_u$efp9yY-i__~2iL`NZ_A&*z4Y}S-RNhw|Nq=cpEvXCmEg-^ z>*j1pIeFvfXZN#ntrxA$jkvug(ci`}>ExtqTeH>e{{QKT-Th3~V#AXc7ekl(uYda{ zW>@0j$IWbiJ&x!UC*F1LV`NxxPu8mB#kKc!-?eLh#a!S0z5eah*Y#iard+=kXmxy! zjnVH9t2d|l?*6Pjz3x+V{kQb%d*9cZ*L_(W9$WG7e$AW1N(DLhZ0i61vg{W3pJi8j zWKZSe@O5)`7Cqe}s(oy2oUYTc7p2+l>+7?A>{{-&t~%?;<=5_OW36LqYF-}AZ0A2` zU6gU~ATxJ-W$MFobGhf&|La^nf8N%tsVB69r|ZxE^knkn>3VZ_RD9g=^RxT;nZ`-S zdX6vmk+dp&r2P1pt%{tmx}8nsC*{fN_9nTvl)1%vDxS^E)Zf47#nkX=@9zJ9a`F1K zxmI7F%+B9t|NYJhclo{5_xII4`?RZ3hMB=(Z}jG@tKs^)Ui`YZcm0dIzx&?Tl|Me# zYks%l?8Ljl)}ehjH?Ph;{dsc!zJJ~S|D5#y_gMblL*My7j+lzae!02*@3)?p`|o`` zbSC$9T4~PQ-L=)f&&^$3_C9WZ_4muK9`CZPo_A|=`r4{BH#et$eRp?t+1sd(pH81H ze-p7S)%*9cUhZpaX70_nxa8*M<32NuavmL7I9c7^s`ORzWVMqgjOzXzR@&4f`#T_e zbsdkSv73!tj_l_HGYr4?%a#6L5%}GIhC#}~ra)=44&jPNPp6B&xxM|zhlfYk@89?3 z&CR9H&uz`WXOs2f!f!qqi-dI>VxCAaFub}eYybOZc=gv^>&oBn|9#{5w%prlTH0Z2 zcD%ixU-$Px$=qbKoEa7W^XvZX?Ee2?S%3YWpULvO|JA<#{i;>`-<$aL@q1o;bmf+h z-tb@}>*u47KeB#qKRes}O{aRBtzr3%n4c1M<>xwf7Q3CBX`J;f=cB~kYi3o?&P)tm zW@DFl=tALRIWfkgl`~E}vT-S>Ea*9-$KNCOx8a1Iviqs_jE*VB$;UQ)`^NeD+S!_a zKX>ZyHK~7pua%u&&#tcK=Is1+R^@q}9Y(_H{~m?!-?h2t{)0l%`N?Wu-mAu#Rm{Cv z_9FJL`V8OXyDbO*>hJb>7pS*;&Ht8`jkk6k+?4$2N!X`Anb<N77g^iC4<Z-NKVdWv zlmKq+E`R@Y{=Y38hT-4e)&6c^Tvqku#Fot9cKc6@7qh3oudBRvEL~kE#^8(b{69Z> z<^TWat^aczln26N3l3iY|Ng&}`L}-?*M8r=>UhM(F#f$SZRIBHR1pe(<9y|-^A|&Y z$#}QdKR!J;G4avIhKe33)iPU?%uA1RbCbpO=WVO0yuGWmcz$KtyJ@;cr$7<-;$rID zx!LFEP7Zu_*8KMV?|WZQ*NskFw_IoG9{I(^PBjy+Xs55q>e}~Yi$ICK+6j?Yi=S&~ z_pVrIJ0tnf<JI18{J1WjXR>5tD0<Q=9{1w=LjKtMyTAW`c{%;xot?{8{bRd)nE&qP z(#I?Q{+@T^<DoUnulxUS`>!AW^&tP9FP;7||NnjOmicU6|Eo}c&6KYa#s4LKUby-6 z;KfIVStnKmI=l7NWIXZs_|Z`?)vdoS<IRnQ!s>kU4Qt=bv7G$u{CusVGn4(#MeHm( zwyX5={OY_g_v35kT0fVu+VbP9`Sm&0->>W}e)M?q@xHTvpPBE!HaC8Xrt0w<dmidc z?tFQWMeZkC&)W6T<_q^r&6yzn<<;H&r%i1>Cb-?&w{FG8r@U)BKKyth!QgP`+uPf} zV{0~^FpRG_Uwv(TyuMcT_jk3wUM{~au0O{j@r{1{$Fsrix8iQwS6}aYd077c&-;6S zm#6mqJixxL>UFgJ@8$CH=I<DP*Y$j^Q1~(9i-fYg+SZ=R0M_a4Zv9mmS5~wiO@89> zvBJgn$TR1~?)G<X{d&>Dd3d>xq;c)99WO7dpP6G>`0Y(+@pHd9=J`(5zgtAL)z(EC z7vA0FdEU;t^!K-$zrX8SmS%muxjEa)+I5Ox|5Jb4uP>%(3V)qCZQ&Lf;Wd*FI?epS z=b03EdH18$Ya;i!Uhupj8ECPlB>OL4vCFfG$qWkRIej~S3D2KloPO@__rI@JY40~F zdf~s#_VbTE-^0td{L8sMZDM-gnVPp#GrgbL|Cssx-#h!i7v*EW@B1G6_xAq3`~N?A zyx9Gux%ZRbs=pTA_YLG147j5IeAV%c&l0-wN?UD=vaVbRTr4MR`N{CNgsGRkoM`{W z#qzniwKac!Oq{INJJTxknE1yTX1Ra1WG=ETdv<2y=Jf67W?$b`keFRv{klu^@wN5y zH&uRKBWpeH#@6h{4x{6JYi)|t*8XC=96WcfcAL$I$(#Nc?g=XHnVeGc?!z^oP+bwO zYrYaTH!3H)aX$8b6|gj5Lg#$1FXhF0ul4z|zRj>a^78fT3A$HH)TZXk-aNSRqSJ?S zlT^yOl#lv(%HA#c&|b|YuV=Bbw9Ia!xz$YLh`s-pt~*uhd&zIvhv11tE({L2oid-V zcI)q3SN`6<{=6%5{g17-vWxxX=9C>@``;w})q~>WxA^v%<lX$UoB!>+J=wpHi2C#W z{vsb+bN2oJe^=jEg<ozJ|M&j?`^U;|HWo=o1m1s~P_be@*UtCrd1Ngwu}wezHTlYl z#9xM0Up^Qnw{6|VCvTp2<Va`oG9O9xpwnMo8tw3zX;gM<O4#oiR$EJdeYqC7IqLbD ziI!<MHx*`I_q(+r@mBHdTibGHZ_mE|=<o08vbMV(eR+BH8N1Ki(`9=MK3?Ci_qqPC zp6&4&SI>X=_e5T&C2g~Jm65UUbw{<G-dkSGi$5`MrJeKcAKifyi~VF|<qRr6t+T4| zpFFi{$CKuzvflCGU!oo#njE<M@A5;!a)Jy2#Y)FxDnA|#|N8FkpQrx|pM5y9**#6J zI`xzE@8$RYoL#*=PolEs{*yrG`ie&f*4(vTo>x_N==#1NFHhJ1-oAd<2d9bE`xJ_M zJam;-+N`?gCAjm+$BT=fI=c!_4qVj#P-)YOD@IQCQPJ*w(&kxzeq0n*-{v>ZCht|q z#MqJ=&duGw1uWB!@yI3}v-|nv$JN#9>*MWfFE88H*SFKU>`eIoX+FOXHhcTei70z^ zrt93f)aU1PEB}5~&)fg^{+X-OR?LwR*6Zgyy}3)Ib^2S2y_1fKJ-hOd(@`xdDEie| z&b_(!?F}!_nq0oDz~8B#kG*^Dxi@8NZtl-((yMSUzZZPbUBAHBRrcIF^V=V}JLmV< zMue*;rx)<8U+!V2#IS(<h0JIEy;XmoP5bw}Z)<PeoBRLXKmS+d_4<5W;c4FeJDx6k zT&;e;@HKC~T&{Ih#<z9T)Bip?{=Xu0zTNe2?{tgK*w6T$eB|*$L1nqX%x8svx1GAN zQTbS}Fk|YI8yi0<9_p%HaY|!uteTI6ac0o!-!p71<zns}-;()h?u?zqsU4BKN)D|G zoqT=m?0;vBjpx^vP3th4ZGQgVzQ3J!cZ<KhzyHV9>$m*p#Z-NJ^QrjxJe%sWi@Muu zcJKLrZ_^qXVV$yxq89?Z(=VQ$_v)?RqUC<F^6!Oie_J-?j@>`S5LK&`ySqw-)qEuG z*#B7Ad+#;B=pAOYvI|!$43&Nsa9*}#*RC;IcH`^GAGSgL91JfwqqpU}{Qj=I{$tbU z`7^3sPqYnwC-tYd`u(qO-}Cl8nzj1Z-&fma`^nAt_rUhP=+9-Jf4teOK5vH2!)^Mp z6^$H*k3KH_zVG)%_h`4?DfUr8`=?oN+4}Wk;p4V`dHbY8Efa;+`{tQs_MA`+UVchm zsPp)hm7f;YC72}s`qKH%`AV|A{U>>)BWGqL)-5ur|97L6`?zkDiriyYXB#nnx$Q+y zmn@$@Z(HW&HL}*v_U_7`*kQEXuTy68pR?xT_e-xgeEO$2)2OH?Qj2}H==tb}SDYf= zY+AnDYl4+y$=cqvdszG4Px&i%v1^`z+xyVxuk}7nvbHK*BWAfs`DwvM;mLEl_6HaF zZG1i1bMAc)J06AwY1h_7Ufv$QUVqQu?en63%{FdN-}dK|w7>rT|66S*=S%+h>i+)! z^~}e4lHV?TKQEJ6{WszE#J$GX)>XXuoc}*pFlpWUyT4b9$9%|V-e;S6Y4PLZ-7Ll> zXCyv;-1zZvyZ<Z`ucLj1#%Vq?OtX`sZ!fvIS^fM><J5O|R{Gl*>Q;1Yt2{H)xbm6L z#I$3+bEVGf{d4{z*yv`n%zyeuH=DF`Idg5J)n=<tKP7K$`+Ln9!|LyPRy7$HZ%*z$ zH#f52)s-gse;?F}x2kGc9)Iy-;dRsPxhs<nmg;W`@AsdwtKb!Dl>W7kheadG<`(@5 z%02gT)4#vJ`R5rVHq|Uvv1!VhHZyroq1UU2m;A5Z*R))I<Lk*K=kitL*%$(h`)&Vx z`2X_i>iMS(pZ9H*y>I<<x&5wZ$JW<BOt;^+E%(w|VYk0u)*ZZWQM%*pjn$j^_8Mh> z?|V7_?~nHNudjMPnUP)fb=N2T|4%wC`_Iic|I=xyoW8wxj%l!sTW5%2`nMh1wtal1 z@8LhszW&xCS7UMgyzKn>ds9x%d0<%n@zKq0v8}o>7RCSmy!`yE)4|yFi}>QSvr_7E z#_6ZpvwB25U2SgNI^%pspWiV3%^b^5duQ$}etJJPYD>nOE>U6goEaM*x9+Ttk1Y7` zVA10Bx^~68_HHiz*m*sTxB5#QD718s&zNc$Gx4jDOzhK=<wvIKZ}QGpS@W*y(vejA zgz)V0tJnW@J&^O>sw_LFYp%r;pBWXW-ZB2&d3mY4-ro@J`924^d%fr0e^DjI;P5r) z{=UD)^M4%Ky0^OiRnzD8JD=xnc2DclNS0sDcTVEV<ocSbpMTT&&)ZZc9Q#;n%=c#2 zx3{nD>T~DYDIGttJ>{JB`(@g{*T$N@T4}mAJ8bK^sEfObDqnN`l-ON#bV;c8@^w*` z$!BNX%)WlEHtX%4($`|^;_vUP`+I5m{5Una*Vpx<x4%2NHGBG+xV;5WPyN&mv-$XB zveJt)S^4ufW?cN@+PzFS#-j9K(@AbIpP>HEgUN@QSRY?azSG2->{=7KtK`qAslxN? zs-oPFzqz~nxxB@O9~TxLb??)$tK0MU%1YJr^LnwHUriL%o;I6XFHqCcO@EH(>AW== zSrhj^k^c8J{&MJfvFNs~Q(_r~8P2E&U-@!z_Yd3qPTpJPa*ne(H~)L4sqv?J->&9A zyHBODS-U@aDpI_|X?fQAEf3!REUPq%J+uCYD1$@qn|phI&)Wb0xBg1=aJ%2zw%2}^ zHsAW^)3fkxy|(2k*LEr!f7^e-D(^@C{K&fhJDD$^dprNu&hkq$Z71KmVOn_c%fWb? z|2A`zk38ny|M!|TTV3tz&yTm|&fSrFdP(2f;BC2cx2;V+wykg5+uP6HR3zRzt*?J` zZ}rc0v8&79#r%KNEge_!@a5av<|~dH-`<vcV^`_lX}bQo_xAkS`8>?#_nS++(qe1l z_di&<d|t%nv~#bn=B^GuAGNpY*sH6T!`IK-R`oUHW5njPSGTr4GJLvn`LcD<=3i%~ zFU!AalzqI<viiH8MMc5Khlk&`^Pm22@ae_HZ^G)g{O3m%J-V@HWw6_{@80{IK3X2r z>H62StlZ^#X7J~mA9uMwdNi+SO+W=pe&3U3_kNj~x7WVNdBEK_$!4c<ytsS6r+v(? zm1;7tH~qVK=E~8NC8qnIgflQ~Rd71v>+2i8=Rs5UuP-~-mA|jcumAn%X!rcuZ#UiL z>OQdlf4}VD_B(g}|5{!5;qUuxe~J#s+V3uWbYZ?v)tBSm%kP;bzUZ&}wKx0Um)Q4L z_A4pNE&4c>`+m{k>Gpp=OqhRe-q!=4QkBhYZ1a9^%iLXdw(9Fu%Xa>=)>S1BKR)*E zlaDX^^5WHE_xW~ZIhQvkpWpxO)-+}JZE{vyo*rmC`}@27|5vNe@BeganQgV%zE7u& ztG}(ezqk7AY5nyzFPEn3@7?lc>GWIiRhbu0>vtb_`Wo@!)9KIUZzuKJRzKVS>(!xV zcJY^Q7RkH!ZIQRW_V3s0x6A#v%h%?fn{)FppPWs`x}7CQpUrsC|F84(%t+nEjZS~v zSq|F!Dy{gheu<C&UWdW#!m49eu3nZg+3Ek|UB7^B(RA;vwZSd{&R2I@F)PXb;tzY@ z<np|@f88z%>&KV)u3ufrb#CL8)Kh;aJ~w@v(lx_=Arr%jMYh%7a&B!|S$bu~{=c8? z|G(OO|L%YL|Ie3|?|FRd-d_Fs-?yjhMJ8EQ^2u0y`1ASv`uP2I7Z<q(FZbK~|KD%> z-_y2tuq4YX@%%j-eecuH{@ORY&F}qqEdRga!GXr_cZ$#N{r<1&!GZkymCyZ;_172t z_;9<O_xJb6&F|v3W?eb0Z(sQ3#jMHd^KC1OKEGa{Z(F$N@sE#dkN4+Wmc7}TeB5l+ z@y*BkY>WTwsLQda`}0y*-E5A<$1firzwVchFMo4m)?)W?Im=CtPCQI)=hwHa*%6x} z{;}fi)^CrG-}avuQ}pc2q|3|2bfPNm+kU_E>y-BT8QB`%AKxEez#vw|;IKXS_O{$h zi~IS0Ju}yTfBSn^f8Cc)-}mqTd02km$4A}yKMt_3`+N6(?yJko|G)oxFF5=9tb4JR zH9tN~xShZM&)WRGZh!S}hIjTqpI?8r@_DDtm#cQQ`##+J9`}2tKX3ID!NLoFe}8{} zd%OP;g^B9d*2V5lIM}4<+;*qz_S*aZ|CQ(M&OLBqV)?pQ>$2~sKljPR6utTyn(n{e zqB`y7%wTW-{TJ(gef<`!e#?JeM3UV4*Y3YpnopZom3(uhdDy(F<gGs{K0Wz#dHM9Y zc6*<EdHHQ~`t9>`BDa*jo{@OCuIl&$`5qa=n)mniKI=K{+NarBw|+_ek7;d{=B*OU z3>x>9`E9@K{JzKCrFVU7$;EQJkDc>tpBdY~y8ZpO{Qn=l@_!y&zxR3GvhsbOPklc3 z`}qH#_TEun`DLxXT(JHA=kM-&rAI5D$JRY;4d3%NH@vg*-nVVq^{=<D+w<YjYS)i{ zKHGoa_r3P{G3oiW-y)6G6p|)bT>JL+cKEuOo42geUR-E@x8tw){omK$*F3-dzvT7# z|4+sLf82Y!?xTMB{jd6ykNrKq<XW`5-LL%S{J+m{*WIhRt$X&<<NBJ<;roC6>k!<( z<L|fG$NTo?o|+Qhb$svle=qv1*?J@j&!3pce{SyWZJC#kg~!)km044L!f@$Dd;V_i zAD;~w7<PR-#I675!Kc&ft>5p-zW?i5{@;)C{I9ORPyhSt?`L<rOaB*jud6(6Jxg!L zgZJmH-%sEFqxEHM*U#c-CV!{@|1@>`{=ZohC+qEcajJaZ=dSJh|9-mvOLu0D-i`$; z{pX*q{{HWhyPZ+ypC6m*FK<hqnCvC`yH@!7SxE+lQ(qo^dmA5KzyDYE`>N~ze|PVf z`0&!-{QpDwxZmHlcMBBzzP}g$@5b>{|Kt~%+x-19b^fm_;`jc(du{jQ;A^`Njmz%; z-m888>$=nTzim6MzvDsI=kxo$T9(_@+I^q@@A8A_eA|Kt4U&^(!NX*Sez?o;{q*Pa zdfWeh{=KjC|Lkt3RKMuUwCyHeUw+;$|Kq@`(A7T6H|_cHsQZ7#)zJUn_r9NM`E2j| zy`Sd3pJMrJd)@0#+xLYonYsGB{r_Edwfidm{p7z_8eaL|(t%&;I0Hj~c-gx<KhM{H zQosJ~UG3Hm{ru|L9EQ`szr6fjS$?K@{=AnLd8@y@`T6ntzVGGlE6;CzUp?Q$_<H?^ z=J?$|l0F97tgC%rJzH;2fXmGK9Ul%E9&Vq_DCr0q&DE2!tNC&6^}5UTzEMkN>VJJz z>bt*gwpp&x?%i*vhR5yPS^t0ip3ify@B9DPyzY_k{a@Ytf1Hc|JGG+b^(F81)&GC5 z-{<h}{iONT$E|POzJ0bqM*-wqeYHNBpWlDQud6<8{qE1r^WWaz&o2u(!L7gNL%ICl z7gO^qPhZ{t+4}mwfA8b}v)5nv?=1i8m;Aqn*Y)=8c)6&1*1b>DvVVX18DIa!U6jZF zsvF3qacgq&_rH>T|Kkw5y+!4n9a?`^oqBR|^6zi&{_c$1Yj=J3_xp3p@7?eADSp@* zzW3|e@O^J{!}t7s8$P%Ep6K3c{yjg_F7JK^n&Vm_9zC!A->m(=cVAr{7W)2sF29`3 zj|a^BTh7i>l`Bp^C-d`y^LHMZA7A}zUv1jH=V|ftx#gkr?LMt{|NAw5_Px@6@KErL z?fLg_E&6})9+y?giwk|S)^b12=G*<h_q}dw`TN!XZ`T`Jzml_LV_=YwHp}_(D>VFW z<#E|GhzlG%{+D~FEe5;BAq?au+~iZs<2jCkXC|{UIIumnIX=f(tB8j|;j-6h!&m$t zB9o?NizLibW9U6{=R#wQhUM`YVPYMdO;4M0J?OipT=Z?r^Or?Z53QTtS3TjeT(+># z{k5QF^{vk(mc1Wj50={&waHw*uw(Jpjybk(D|gLt`_cDcx16POUuMRgi&ZY?=6$n? z^;52K{}9_hXJu$#r1_6cr`gsUOS6hxUM}(|=WNm3b&Hqg>xbW;#<zL7Ns^rH6|+}y z<?l28d55hO-*_pWXX(mM7mK$|c=EES=-VZgtd?vS=an&ig4^pRGyn28P<1!tc3vvZ zU$`x8r(gKT8xxny2=807S13;Azv^bu%NpNZb<1N?Lw>$+)m3>UbLY9u(<xQoc4|E> zl6g9B<K7#O*6*6~eEE&+jlzB}^!3zUP79Y^8sn|#8ml}(R<zb$?P>Lz8TtFYYPxqF zxjE~p)m(Y&kflo_?<|;g`%T<Mf!S%>vrcp^tC}(IVph=nA7`qxF7kc%`jv2w=U}vJ zqN>^Q6gSc3tF344@U%A1`JeZ8f6CM<LG8as17>N-?|pG}Q+<84oaXW?o6m<zX4kul z*e7bX>%EO~S^UN!Y@U}*FW41VPa3W=jQHp1I_dQM_>1O@&b*UrkM!PN>0))$u4>-8 z{~RjkuIXHVd1ryb3mZYUrfq3gMYg6nirt=-T4zw|smeLm$>-dK-XnH-4u*Fped}6S zwEl<4>-kp8B}3P&dzYbf{Kxstzl2v@`hV|<c-7p0D|WNz{-0W6E?m}qep80Og2l`w z^PYJ-^&8cGak%IuuR1fir8Y$Ws{6TR<*ZZn+*U^I5)$+N&2?ikC;#*fviD!^ix9qJ z9J>4IoNw0W_RAQ%PWRd&vw7hPuS)$nRrAlURQqaZeEfUq!j|lb!q&lU$2tA1EAp;B zWwqwIs%(5@oztiJ-37`IS6vn<?R6*%(LH`6U#(D?ci(d*(W@q3&PIJRv~F6qx0`+P z?$0HzbJj+#yF9bzK}T5AjYany1uGBMUHLAc{OeqA?u@-rm#Pi&cAw~)>8ov%F1TyY z;+d%iHOHQE3*6;0d&`|`ziQLxLpS?=vAxSt+jk+Wt)M+q^(&A6g*T#G|266Oz0iN| zDXUsG%g*uWw~1dfmYxn=HFI6d(Mx+(iY<z_d??6Mwz0lgur2wENl|^lv1eA3p1t?l zIDPTHDLjUoSFx~juix}q+;9HWT$OK}>1EYrYhO%%w&{hn;j@>*PY$|z*9FNwnYSSE zobF0Jd(nMdmzN*d`eI?;{}6C=ht}91tJ(Z=Tl_`d;&ASF*?ICGbzhcEm}9?P)Di6C zpV{?Wl(x;fT{6Sa_vbVBQyTjdcZ%+R8-C||_#eAj_Fmh&1K!B`-YdRpYxM2U@i?R3 zO257qaOv*S{B^?jbmhXYwo!Fqw>532CVUMptv&Q>@yqqD?k~%hYVDf4>c!EZv(Mx_ zYD}gtSh-xyX5IHS$Icy>&3kV0`^b&cZ2sP}_G>SV?Gs%)<<Fs=yqm+j>phR~O<8v% zTk!nV2MW<Ix^C;0%v&@u$o%<w)!NQoym!s!{tY+w-FW}2gWH#wK0*1nxe6Qm>+Oa9 zcqM`}zMiclhpg_|T3<&K)~h9Tj~3qyT$K1t<lW-i2mNk}e7zBOv#iM{!gKEBZQTK< zWPMq?ZhV%nKIwA%?~7}t*4r-JI_n{?x~5~=i~J;?5;N7Pz`dpEm#46M%P+nCH1x_V z`IRrqRwap_PB6Rp#{PyiqjsFmhc#Vir@XhY^m;nuM2M^A*P@;b*PN-}4*lfS4*O^= z5_V~8$N6X3H*H(i-SS#<G4*bdcIV<tac51I)?8<nys+3(ZAHhjKht_bpYS@}oA|Z& zP{FSfPjIAkZjHb9eeFKo&&inwIEDR;jRHjG@+fX@`=@*7P%X>u&H0->ygDt_W_Vwo zI>qvCnc%KE$G4mF=ly&z_2QlB&fDJ}UobsqmDm3dTc^HGO$k2M*rdND<J<fEB%kZ? zLXRA#&uq%zS~b(^)RwDG>%0~v>{Hmg+Cx%wrg5le_fn<v@v_Hv3pmc3v+C%)l<!O| z=}tSH-*0a>xIWROKHO`+jB1$X*Vf6`7kn3ax46}Ici5w?Csu|U+prg#+*ZG)5#qm} zYy0MRPv1;6y;$~pxz;PG#y2Zs`X=7@iTc9dwCip7nZ1#d_J3dYdq&f~RQ9>PE4O_2 zV+9qq=hy`^l-?f>aR@KpvSj*^l`rpq?%lKIAa_djOmXv?t%rZ_OH=ER)taGx<LRA; z!Bt*K&k}BDmKpBPV^<fQQ*5E}M@ZMkYg2Xb)EyC8-=f}Fayqita!u#mXZ|!&^!x(b z%PsFMe)FiGoxkqJX~W4`|Elf3aVeku@w3Bs`Sf*5zg#>tFIMyK(uu|H=M`reC-pj& z-Ze0;2!FWc?ba7<IltrQtnAw5reLl0tIlVxV0!kn*E+@b`c{^7X}*2#^`a{xV$P1K zi{j>eTNJ*pr1F<mR?B;ieXl1PKbg^XOm^+>H}c(wx0~z=()YKvJa(DmzF^ID<@6JV zyuH>@{U>f-p11sTCW;34CvP&(Uw&$GsGQ~g*Ap|7ihF)sI<K@jW--HO6Gn!Bbf14O zyf`h7>C`eXFkE%%V`N~61g}P+fPCWQ?tOosu58+3o!ql~r#v$YcKEw`xs3AuhBxB< zH!i$=aN6rq{K9RI%KAcU&e`PYe=N;k6?E!HfZ=_ucah?znUj?Es|W8Y{l8m^Vbzhn zjw`FvGR?jJ{|mb$d%ld%y>oKF+DXqG{a3I5p4_Cb^fOeX#<4r<N%rl$Zo5^YHP?P~ z)qdP+%D&lUzti2dFXnAJDO_~U(xzzTu6jGsT}liqY^s|lnV;plThl%N*n1uS#dmI- zR{7OFm6+^u>yG~Vh`vIzv*8PGJ8o5u@80;(Y0INJP4?<1ENwT%!(0?)l-ML#(@I)` zS&qNBeMzWRUb9G~Jo~|c1)JYUyt}Y``LavtqH_(5;!~XEcp0ju>@D9}zVydhuRM11 zh{Dso-*|SjJQCfywn}V|?JDUtQC>{bYkp4Bd&YT=qjUj#(V1;bU*f)|F5cg?<wLf2 zX!DxHvd(S4r>@<1>Q2VvGV}OJ7uWCqa5|)*fAx!poBHSaKUKMTapkT_r<0U|O@BXK zUJz87lD?pl+dbrq<j%RV-@csr@S<gr;7moUok{bm7*+@r7Z=Wul`Cz2C0(oTcK?b< z_3url>C02BI<f-zv@d!dIsWB#a*=ZByoQ|;A(JcDale=;lN{Cg<oc3-L0uQ)YtM;K z`>PZjAI%ub`E85o@8Fk}XWV|YzTS41Gu4$xu<7xuymt=aNq2Qmoy?Ws(%K|z+m-Np z$6QuRXNN0a<F@-Ba>y@YSh3~E?dpTo`}Ry-`Q7|Z_4HjES-<F>zH{NMy7&G2hjz~i zHaxub$nRW1-j5g0EO349xHd)a_zL}ykBSeoUF%sb<4^vZ9ugs_dr?>O*pYpbN|RUE zE=uB;zyG>M)4goxq;vP)>O9x~P^-%7F6bNG&(CjGa`*3wQzw~K(?M2GD(>0k*m?fh zHj(|QlCQ3<v76Df$a=T)pRQ-$HJ2rt>+WxQbvmL?Fka;#lU&WgTl1S(On+~EQ*tTg zU|sLYm9q{@T)uco#^fl=x$s3V(zkz+Tb`80!@j!qb1C~y<Dx$ecOJe83|CmzH*edl zlQQAklidY<FPrM@ur4*Wd3eNbQ~OLsJ4=R;s7gz>`>R5X_k_Bg`1`Im+VJq<=qiJ5 zbI%He<+|1G`5QjEy|P&`)#vGq533D-iK^Xqn$Waf{pZ%H5gj#+HziH1PyF9yl6vsX z##&dAP4Q=E-Psg>it~Az${DF?SGLVn$#L&r^djg(c81%ZFJC^iaH<+RpAM)mVpy@J zsJKVreQ1%l$l1N8_C~wzlG-MAN4VK~+pVSEO)GXRo?G^ZExUXtuW7rA);q8RBp4i~ zO`Vq9r7pzIxF`_RhBpmbDx;j_^Tsycgs+H)VS(GKDajX3oG@f)kWxIp;1RhD(W|S) z`Q>aXLViqCej*VfW4UZmQn|dGO~r>7|CHTN7_P7=@^M```<x2H3YH?C3#vsvuB?`6 z>I^0PmTVeqmdh5MFl5kbkzp2TmI)4gBEcZ))F-H?+xN1!&82UpMiEZ~m*R1bqbVXq zKF!L<Lqsgu99kzNx5PZ1(Kl^hZM4-HH`&+!Dz}+_51Mt`XW^<7hN4%`%3QX4amkx~ z>ug>I-d-8yB`H&;$5p-jJpccnIhMtbYM&@&i3e<4c>CZbt(T#<!tR{g*mZuU`ZaHz z|7q=(4lzk~8g?c>Z0~kit)KGQPheg_NzBLPDmTtO)F{+i6?)0$?u5NE$@9KB_|99p z=x9;T3DsvNTh}>x=^Sr4JiBdXkXDkw1m!0Z3j_KtDn5(8|LfZ8_50s_=M)RtIf>1C z%L>=9?A^M*R)l?se6PJ_%NA4i%}2sA%YANWE}H#%m;IfvCp)K`mOj#)S~9OQU6k7` zblP4S<*8qEu1}hu?8PNk_kU8F!f^&k!{lQ;my3>cJ&{l}JibHGEl2HZ;L1g3V>Od3 zkKHuk?gABnuM2Z_1XMVkja^<6U6+$*_P%jNZBoF6kkk9q+F#zCWG8+09pCcOta~;^ z))vNw3oi#>Fut)(GUCCMkmu7*REPQXH!@!hd1(24*OSxJOAP(rXzB*@74_7#Dd}IT z*?7HfZODsCt)S_aZlP?ZGmDM$H+L-3tjNE4Lvj*Z+vAk^C#D%Mm6~sG=Vj0vX*&k3 zgv-l(!($4MD)-wYZ4=$7*_AZ?rrL20rNw7v8oMtMn;2W7Dwfo8WX<Af=L+T)7&or! z^4)FmVq27*PyOa&EpzX@tIEsI6^vDhF1xOIciLkg&74_z=NNrl%Q|HaUy<E($^4gJ zk9~h|cTB6$IZgljZ%kbCwLV__CTRWD!P@zt+bf%?6Pjfn@Add($yL_vr8<Azx*wKq zwTaS>`wSK)Moc~>@o2JeM#w9Un_cz+VL6Vbe;ziy&?)<MI5fB`mubbmh$$bPdmQ=% zUEBmKU6+W-rv4F7R(U2-`nmi%r}rCy(%m^Py0TV(HC>=}aNf4GdM(@jn;e~+<le3e z-X**GM)RxKS1TC5{`1cHb)?IpeOd;Cv2n&LfrF_m;g2^I@0$F2oBh=L%V)Ix$Vj^| zNpEd+(Zu8={h*ZfD?-0;dOv?YBf_OXd)M3WlIYD-Tk?z;T<>{yehrK_nxvt|!+&du z!~*pj8j~fGSc-ZU7<cs=)pZC?D(Z>ios|E-s@34MYs7_IT~JeYnn<!xa^u2pJ1)N} zTeHah_wFr0T8}ncitg_hvXQ;_^VYw24tKvT|MXkr@`l;d;$P0Ic{1Zgx5!QHF45XU zm#&%|&+wa7Xnnh6QTNHisrKsZj4L!{Q-#2xlH+zU@EE^g)BNNkN&-4;2QTH;e>Gci zGxYAuB`2F=&7OpuP3(D@k;ymf;!)Rc+-ick8;{SterCn%ZAtw4-AUVCL|Vl1tQY9H zs#|OJ&!+3n{4HW_#x2u@&ph=NEi1dVY5S|EVM@JMDzy~VE#1Q2bU%5=8$WB7hVpR> z`|A@oE()lxPx!q+Etuom$&VKu7H6+2uGw)}*1=zpQ_b)Q#}f&~pXqLaAMM`d#_RDO z)LMOSo>-G<=(_ctttS>GreAoopdzM#@4*_^v}hH@K<^ietX^*0e|_bP<d@C27e0*e zd^aV!)4j9I^w7Mls_LJ=a+GDSguIjSyFF*>PuuwP>9+%lJr+GW7tC3C(lGC2?Wv^r z%&X6yOB74pTH5TU{)F@Mw5}U>uZX-8J@nA`a87#c^tTB!eul<*PCv5jZu&DHS-GDN zMH+rN^a-9iX?Rm9$iY?oYsywjFaDEheIIw~2QA$k$C+fw#&F6Nl=d{+Ud}aq*4rbc z6aL6!>tEwq-=`|aUE)-VcpBa)A7?mv!n1FsIHU+=>~e&co(xA7j)#OyNM=~@`-Gvx z^b>}nOY^O4Dn2|2Jm}sxAvvJ%$&9Y9yR{V`9voc!yI+R*%3$huVTKhf#r`J+i+Hs9 zWP&Sq?)lBI!mx-ZfTzgk>BMA)5_wBEga7;~;Xe5$Do~;LM{|#?xgBe`_qD&I<*_YX ztDnDi<(-hM)i1-m;5XM(iOX6&GLv~_b!&fbE1A*T^WvZ7c4*=L`-I_C_ddo8wUQ?c zm#)v+dcv@1>6X<?Zd`bq@OR1=&)Z$MEyF%qepdM+bl$_DR`Hvs_Sc)*nG0^a&n-Ho zsw!~!tLd?0Q%lZqs_Xc<ZuOeAT)Xn5;lb%)x4f6m-_d1P+j+u}Vb}UYmd7INADesC z@74Td7y0Y$7BNe;7~Q9wY}d82CZ67Qdr^ND>-?|#oUUKJCUa&|$;VCC?#%hO<VK;V zu*lLGjqd_?afGp|$Sqw`{LT9G<jy@@q7(PZ2)DQ#w3F40FX8(;=T`bPlRxRZc7rWz zvUJmvKle*;-BH7(_xQZ`*IrXQKErk4S=+tfhHU5#*^p?v?2BEQ*>y+HsFck(yz6{_ z=4sEZ`<U6gyu9D&E-2WqwIXm;zt#L3Ji4Ff2J`T1zdW}oe@jODsYQ4E<n&%h=G^8f zX}7w)s`yLP9JyCsSB+(MK#KE%IM)*ieHX>`Z!C|s6LgK)T-8)z&*q>OqIX>7?$<l4 zhu?_LztSY6XXCWvTgU928;2uHy>`vLrgi*9aH+rE9)VEN*=1KR<nCU?@$Aqczr6C# zCM~xcAH3XPyz_j2?rvV|Zb>D(nO%1@qw?hI*$&Q&c*0XUf8WLOq&aeBZBB<<KWHSy zZ@4V7cjb}eKek#Ji{vah7raI1xx{CY6U%R0czK26*UINdFZfTs^>|A2+btO~XT-yr ze%d~fV7MFZ(|2?4ZIhUfrLp(6?pf-1_tYWjxqJ7!N_8rW)_&jmw>xaJ%;K=NBa?-# zU1H-K)~?vLC&oLp$u{@wzmO`q&5Et(-8P)At;@Ncf1_-TQs3L}h0>EOk3R5WF4_@w zNlAED$#<s1tw#>OL@JXPeHPI@Z0Tmlym9$4(S242Pbbgc5s`j3*iZb6i0IAZ($YS! zLWCwHGnB*|T0Z;nvH0?`(pkL@PJJKq!}2a}OXjU#uwsU)`lsWE9$nQszM^{T&dJAL zO!nJ5vt9I}(A`N%J+UcFi&j^riC7+*dvn|0w%p@dNmcv%ZwEAam!4OBvv_%-w&6)+ zH{IRx$4k&?M)Dc)PT{S0wZ(Hc-~MfOIX7B!-|}cfW|Q}=;o#IYLq=IAx-9RW&E;!* z?2@K#`o5{5zW%dxp1fnutx6$lk%eZKZgZyZvOaBWwmtK=wWH%%y}N$uzG81u5$)yV z^I0WQdoQnSoqTIi#*X%hxrRDbVVt#dBu#coT8e7QXq2x`v#4}=RG>IVanGd$z5G=h zHea5$H&lPSP$no!d7er9SGv3W*glzEFYGk)md=>>Fnjuy<pxDO4ezv#j?b|ye)nv) z^<9n0JJ#)f-5PWGul2k<7csfrYb~6g@Lep^a$V)x*Lio>ThW>J^|!Pqb!Q|g7WtO3 zo#lI##Av3T$p8AEshVy3XK#;lA3oSLU;g&{hUA%Pw>1S;o_trNJ?GBe6HJGF?MtN& zhPH<b&OSBwaOUy#SKbv#XYqN4+^OuEwp&K{%~b!sobKfpr}(&j|5$A`HDO-Cn&8g5 zw`z*V8D8vDD(=}(`FUsD-b3Z7LcdQ)&sBYw#93~mnfNeJnZ?lKz37>$XMRC*qMpof zd%Py(>5FF{tR}3N5nkq|ZpOCshI!mA^Ch{r{hHQw#HLxVr~pUH4;f`1$xE7x&iwki zDfay9DoM*_63fb+g-(Y|uixc&@$AE|3e}d&(x-e1nhZ)(3uPw1@c;j1+UN83#V1vt z|NGH@ywmsc?tfEeB{%3zOul51e|(BS#7R)ub;bJRmdv@jy3g}=9NeQFJRj2d1{cKf zE6XQMRzDwGnfiS5`Lb`X)$5a&*-ZqO{il>c9yNNWvO0YJ?x)j=tG}1U6}qO^-g7?* zZoEJ3+|AEWGJogtDM<$!&OM+1e$8zS=RU`ypk<x*aWx<Bh=$LxuH999ecidbzpwO8 zfol{Ah7(g2ovogqpWfTY_jBEueYLBi<iYOYVR&-t<KySQzP`38^ZB>m`>R+gO#JMg z%I9*`XSTf7f*Ug1IQ_}}gZH+c{u6%V^|h1tr&<=d<bPEG*Eh@zmRl-6?_^~5i53Wa z)+SwL2iLZI{{KD2SG7J*>j~fwY?Ep3Qa;Y$VE6X6`hUJ}GmR6cMDE$qzL>|7O*DMD zB^$$q+VA&%-@3B$*|k+?=hwemHrvnc`yK9O?q_FyE|?+fu=7lK5Th+<Cyr?0pC3E5 z*S)YQP^j^C69`N@&~R?D`dPIJ`A;MmPHad$eU4W$=~h^@bRb)AlMFM1WZAPbJ7?!l z`~Py%O}-vE-Fm@@H>{s}WtbUmF8j~7?Kk)SSsg~-?>J9!JO>KR&uu&}W47tcOJ-Tb zQv{mEnOXi}!JpRnzw`BWo}2SBCv#%pu^i@|&V7sxHZ#oD7XPWZT=r7KxXL7u?WYS! z(4sQv-*WHj?`ls(7x5JJ$S^ZlZmjyc)B2skTM5BbHXemj3hgHh879axv#I=%&3W5v zo-$>o?QD(a7{%iZ4s~zt$^Q4B9%FUt%<OctMj3_U3=ZpfBrol(C_HE$>oR5M&$LB6 zpPFTu8Fm)^`LVO^uh2ifZKXd7p7WZ|iQaP~hiRr;A7ew+$4A|t4D;j4<+tCjd$;lU znK_*$Qz}0k{BdB7{kGi6{tEv$hB$+)^B3}dza>*CwB*~X(si5q&z;*6|5CKtbxJ4i z$+M47X<NJZzq_;Jqs;$lg`kP31?e3u#t9A*@p?O#eD1S;lKkz>xf{26p4x`3H)Gdw zahZ9v`|)C<zZd)$a2S4z6n(2VpFKs&l8qtj?Gw+Pk6yKYYm-hXxViWCn^kMRY)@&? zvrf5ku=)8k-O2wSZ?Bt_zi(%7$OP{v5)3O=*8WZ@yO=N9v31)mDYH`<x3`@XP@ea; z?yr@r^iNRG-x5@G(^-)eDQmFc^9jM=H-$g@jMV*4?eAW9f5y!n7eyvYgN&K@`1o0C z!|!)4N1ncKudBA~iS;Rt%gaut|C{8!>Z`KN7m*?!hASQaN_!cZv!s%`rvKLX{NwSb zpYN})4`%Ut!Ul4A;^(x_*VC(>9QSlhn^NO0DJcJSeYpSZX`hc=3pioO5WxLweZ=<% z_Zihras2*v(xmdF>K@g}@*vBt{-*VG7^Ur27m*M6B%Au>{hxD>>t~$eF5+Pbx%=W` z>Bcgl)Rx@aDa-!+JpXylRVgk@HilJx|G78+{x<Wh&x!0Qmc`HR%>Tc$#`4F-AUjaY zaaW&=;r@r&+p0tM)u)B1{1u=6BmLti(5{oKUmtZF9luk^&bTP<MZI_0->S`>KA`MY z+W9qT&8)@l*S-55>drjc{Z#wV`d`nOK~{OMnVxiYj_vN(Ulexz?C<J08|E`b^Vy4+ zwOun0PQ7&h?$k?bJ)X?40i}}CmomX;R=r$*VV98hv{UmJ2IZezGC%rPT)fx+pygiS zf3%x^x%V+Pyn5x=Cn(gd>N#hjQlQ%3JD0xy3i>tOD%7gTXCB!7yJjZ0M8xLr;@1xQ zF2C-E-p2ybRXa+zFOq**s=LkG=FYCv@5^jr>Xr(?G-%CE{$uy=-W0xd5ziyGAMyRG z*LQcR^sZd<wKtYM6VE+*_vtp)`svXZ|9C0FoEmC&{KuWWowmZ=P4VU0t+(=~6uzDn z{qeinrn`UIo`&UEZ;ar98DBIlndSFx(~Y|xg#FpunPYx;!)(3n8Mix+CQV5G)FQ*o za5eO!%wqFo{_=32q`(WM-^J_h&TG9D^@iPNTJ*>7S-a$_kGwL>yO_UwDniFinaAHf z?`x}wvF?8t#<f*fF!j%_=#SsI>Mn+X9Pnpbv?iOSnm;J<#NIt)xN*__<7<CZw;oxP z@Ve7pUF*uVlBEH6^P}r7hTVzHi`FO#pLoKs(g_;87e%*6tmwbLO$h9}je9$H-&yo5 z?9bk&_$^a!=#_5{i0;T0YnGX;4oZRRf{K0KJnSyrz`t8tZKKAH(*NIM?`&J9op(1k zdt=vq#|uZD_@_s2%-ybW#H`z~@1!s&X@>WO`+hHPF>ZkwvS!V!rEQaX+9VobB0Otn zxw=h$qbAV{6PdGiRwTb66U<vTqf9R+d+|B-I6w^*U!Au1p(xaXXJNkoeZ}`Ht@E%k z>Vlb|vu;*i!O7$2C&j=bGS&9@6MmS9rTenFii_o^^%-^UX4#%(eZzgO^6@8}pme-? zUijIFHy$_N6ouz(o;ML1aZ?w{JpNR^bE;GB+4WaMVG(}9@M{~)Myq(!(q|j^wZpda zm#@En?T=TiBGg1}=he$*+uzxyzjt~3N^O{Xo~j)ex%GOR>HeT_ScI&49%?LR5oFeV zU-ie-T~1KXhR<C;%c}T>yU)VdJk{EKStY2k-JzTBedvNX8W%hJYu3)JKDoKi|5qAD zf6;d8JIM};l<V7ai>~f@E?4BUcZTim;5|yGr_J;Q7p<#aKX9Cx%*LZ|{7U!5#i@Na zcU;U-x(rTS>F4I`ej>E9K+Zl->qVsb9fkP5+TUl?j6hXiX!&{DqK7g2@8v9F@BE<@ z$1Rw8#>}WshM6IBdHu$c69U)H%`?xPb!LjN+J~qoETC|H_oMLhV%5577dIc_{`kE9 z9QQ<RP$Fafn?LQ(pXYPa&&}Y<%0I*+nN*Ri15VxCO8a6eRqZdn@O*v!w8qKVhL)g` zTdMM->*vd=|DH~|b$i>{KQ5UclY$+=#ar1I{XbpD-`w1z9c=yj`fP#2vlGE({j8{M zXIy3~I$QP27`ld>JURJUdD4;Q|58fRLEg-sZ9ZGx;N{V&@z+<dO%!~7*82MT`IYm2 z76!#lOlDZX-Vqx1|Mibwg-@r>y}YcntF-)U*3Ms_G~RD4T>QtPy6pK`^Y-&^Wy?$U z{a93aYoh%V35FMjN@sm$Tv+*kW{up`+ApuKYfe()RQrCykm15-KDjCTyI<|wdSLOJ z<FBqhFMDt1uLEu+Fi>lAGY!qrYPMXqcxgUpCC0>6KjtwoC^Wy)JKpi;qIQB)N2ju* z*2b4d@{fqDijF<UuwY-u`_SV0fJyuEf9_+G@~nL-QQ6J)-da}otmpRykMe_#-aoqI zKI6>G*XBqhJJrN9^DbCd<Z~(a<X+*I+g5h?ADn-JjnAa^(5zp@vt+f^t{Gc5pIP=t zW;N4_`g3m=b-aK5!|ndFXA3Ue5u1B><`UOCmLfNgum91`7Eo+EA$gnVf_&kR(T&kp za-%!VQ=&NY^|melk#TBK^Ue5zRSlNv3|G_ly_QL9KmMj~$qc1^>s^&!T)uYaj+*)0 zi)A~OJ)c~A$WZO?5v^sbllqs=xXc>B`Rw<qhIuCqmx&7B<G8}>{GapqUh5az)*g}S zw0){`uGj6XRKWJlH$oV)v_H08I6C+A5ssxR-e(&+yq)y+#`kK2>DK)kJ8Da;Hzu)V z9Q?zer5<dlR#fb@xBP|I8o}LLS#570S?hK`E~j4GtXYp~#llO)K9_nA<!G?(U*BvZ zymIx;XWh450xnhGwL2QZ5aPbAsArF*O3K6s{+4O$_m<y?UH0hC-4fLol5ZxIZ#*%7 z#-Ei8SHf0W9{Xu`z3az5zW?VMZm9=#&vo)oZ-3!<v1{f9a7blJo;GaS)5-G1_i)&g z{AaH3)jsJdz54dO=Ib`Gmzw1#(sIh`wKlUZaPvB2_|AN1LXubb{p-$eHFh3<EB{2m zdVT%;iGPK)cO@Px{LQdRsoHXx(GlBDdsW8BfTX^aEanp#R^<0iO`c=Fa$-_Lj>2&U zkBbqOY!1)9IP@`20Ig{&?Ui9xV6|j(h*dt$;NjTE7;ycBAw$rFWQHrIMLZ26Pb3(K zQL=W6%;nYM{cKeXPb5+fMLn5YxpeY`<O-1*5Z~#SRr{LN6@5QBKb<>oI9aNB=PixR z`uoq6iaGQ-vQ0?-v{uUUSdLOZ*V7quE5kEf&wt-KIe7wm*<9mz=M~|<Qnf@a*;Eye zADNKsvznoZr%KLJP5aB~5UnB}FQ>jv#p5%=7@tUdu_^Kidog`w$P<YvEi%H+eTHk9 zjAkc))6L0@+;Ki9BvQBk>Vy-9kqhIO1x-v25GwNVS(u$KU-EKk^R05e>{nM!&P*}V zXt!LJdZ59;_yxm63FR*RGI`5or}oHft~%0ipyTSruA6?Fs*c3w-u8|DtbOX+w%uoP zn4A9I`@>ng<%s3q%d4MoT0dXp=az3Re7gCrX<^ch(;l<dL?fK4`R$hPx|J)k&PYx@ zE_3<Pt*l^YuLgzVPdsdnuaSGWgmb4@cWG4k6Rvq8JZHS#uen{PDsoO=P0wKeb$1Pu z<>oeXj!DWs^bgG_isbLUecNqIuK3d3Zao3#d)D1mWvzXZRx`=#qW<LU^Yd(%J?#)( zJu~^%tZLR-x0AN+)0Lf=tGQxf-_qwZ9H-B^ereSwt7vQ0Co>}UT$uf2#=0vy$93*( z-&pGK+HL1TW)}(NBYcZXXX@zjYzr;Fcs{3XrSr8fF-`{gHw<r>1mB$JbwhWCVHt~M zz!JTkcXwTU)9u%|sN((c2rI=Kb0+Na_`Q2q+{M!VFFzMAZQ=V@usrE@Qn=2NAHk~r za{4dxRyXha#E^ULK#QlA+kT&GD}$G(ot?F{^mW+gwH>~JBD>F&g%<ln7f*<@iu$#x zN6ER{*JPH)QLPo(u6yN!|9;)NDecUR#HhZAi87NlW?LRp<C|*GB%|EyG(#vP$6)rN z?Pn!-J>0NRBcs!QSyEcba<109O__&h`nd9i9G_g<+*Z!?A}FYD;_12%n<p=cc%ZE% z<}#CS<>%vSo-;1X>)GA%JIL^HXOGO}0*mO7<Ck)`M?adtby0t^wisxpBINU5iPJ4p zx264;6)*BRHf3V+k!h91$M#u2p5mjsCZsa;Th6U5FT1qYRXmyKerB7JnQP!1quWzY z8v6P^Q~LYdF*M}7qi@pY%!nJ)&b+@N@<#up-KM0zMawu|9qsX*bX!K4t@VccUC#pZ zT<dG@+>eeQ3)`x17VySfM)bAXtxcOxOTI7<=(_Sf`N*s{?5!&Qe%(FVm3P_g)Sqqs z3W?{IJX|#Ur<LHY!b6FwGXitiTni11cUxbWzoh8PX_4f`K1m&dtL7wIMg8iUy~I!J zUH^of3eN67A)3OwzSi~pTpIrIWMoXL|MTsM+`Vg;f#+!g8fAo!OkeOacI%yoHpbg@ zt;%l3f1fCNGc@m(+r;EhW3~O3Zmvz&S{)lU$Y0evd3Vd(2zloa*9nG(YIYlz$Oykq z)2?G)sxc?IM6aO9>6Fsj_g>K#kIpHJU-<K`U1N)7u)qFOnXXqdw(NHgmI?FLW|Su! zQW0GouQtEWs8i8x#ns=2N=q&B_nxQ_u9kNDZYaGX`sovittnDftXr$+nqC!Lv%@q6 z>@lqg$#+(ZU4Ic@y2gJ^tWSM(r|A)QV=wKRH7jhMOZ>eo^)p#YnD2=C@8Y>j<}8%< z6Zf7H9qrq5@$xIbWxK6IHU0=re4{q|p~GRmFVY&WI>%SsPrd59x$E|l1o6D(q93lm zzwzqbvfc~_O@sO%nS$p$Dm><MBL8syT{%guzvr^-C3ZF6AkAN?UMfPMV9uJ9{Kdb2 zj!bfWvf7jIfPSxYhDEHrpjr6K``3xYxo3O2&paZa9HM&s$U3WQ>euv^?O%IDD$oDy z+8@=-KhGIDPAdp*s*#VqwEuZ_mDNkfRQdPiAx|9C8(TiFSY&MDbY3-WbA9tE%f=s_ zN2Nf{JrN_o5!9&5%DQt;`$We))<YhG6GWHq-|ZdHU03sOi5;gqXT@@HkwY$u?C#r{ zs(c=vRNnnWB*}V?XQB4Ld#5hy2d`W;J=rR1R&z|!y=>0=MS=@m)1`jzKCrFnSD0TP z=dDGOe|ipU&g_b~5xUg9lV!3*Qj1WL&zI*WpH>~+dUPIp<<@(l*0qyvxqjI`wPNv$ zWY?z##}_ajE#`SOwQi<Y=w2D+WN!rz4WqRh2cz}3J^1UYc4hgb;-0v5qCcfq?8@_Q zTGyeNX1(Id%%CElOHWne64t!1%kO-v_j|YP-!{paRckbgcs@1AOcwo>sue0)%=2l* z3YlOV(BdYcE9);6`NT~~p1}U{walhIndV6$D#tDIkEf^{osi6>a9n};gyB!OK1WZj zKXpE36Ox4{CQo2Yn(Mr8X1EonC7a=s84^W3nW7GTj29-KI&FAj`w^MT9A~b&b?%D% z{CUNN&}dK<xVA^;@ZvzZfRIBcjf>~9LaWFACjJH)<^|`bPD^GmktpJ6*yYy8IH5^~ zdBM7g$qY+CcAvR_*0l~|lLJ=~kC8&{T<2>OlNqM;$~5yR9DgEh$>wnLgy9K>-REYm zSG=PA*Jx^&4D*7VClV<P@M^AM6Ufa^W~{lOAG}g)UNUG_f3E(sTf35~o_Flrux`e^ z6BGYDn^DUh9VPb8SXwmn$(gIxjmMn(PICP<nz~8~G&^+q^`vVXuHQSMU)6j%t}j#4 zK%s}-N?S#(?NRqqt)fX?GTdF$lf(KY1SB?EMH$}q4C~*qI(K(wcAe|Zdu7vS<~nS+ zKl}ds$p)uB`LCa({zfKJHVRuk=d%LZI1TJ;i#?ZJ^6;g8Ky<PG(w%2TswUO1T3T27 zbNc1C>(6JMNa)MV%-zbUsH#07xhN%9hfo!$zEJ2xoAq+Z_t_%#hc?NHZQtITaa+%; zyjNo3JjvMI-dw*<oc*CPby2+9^?A0{KBon>Z(TPJ>@Diq;pl!{zLH;jdrtM^viA@2 zc5f0&*Lzx!s{j0vLe)i~N&R8pLT@*wo)2g-iZA(I(`C7Li`^q{x3}6?mY+DSzbTr@ z@KWW+Kb2myEqBO-pW=BszpOmf5UIZ0>@-6Ht-fS*?(Hor{?#gbIlauH`Rt1uiBAPx zMJC@~D}8p~50#E6>3aKPmpBhTYq{cj>;BcRUF)isoWK8c54^4{vD~QAcHDc{?N<xd z+c?ZNHb|V*by0tE>8mR%BR8kz-raRIM>{E4<fz`}SbNK5`Nf;}3ZM2pxKn@k_RQ_E zk)6iVi*^*Pi<LbXx!I@1I6Cb6`dwA$qkrn}Dz-a1C(cWL<7%b+BUAqBoNU~<{^1K7 z)w6RdEH#a%m{hu^8XsQ~p?JM+CTC9H#F+{_ELw^)d@tU1<GQ;+Xm{kp#9gy)3fw-Z zSFB^~8Zq(kRf(JC87^v$cW$-FC{O?UAYI*a<ALxHoem?}py%(aqUv}2$f#!7d-S<c zQBS;}PoS*#_PcqV&RQ<}eb#|1n1uNIE~aM;b#o7{jac*KtZvrfJ9Ce!|BgFavt0JB za@(qZx}X03c(!eW?n_g}H*#*QGo`mYTljCn4aQvo=eGW?{}h(KZvEXD?=L2co{Qvh zewwp*_t~6}S*=t5E^1%C$o%T@8>^qqsV?~TaW!ZBk+|tKKPMfj{PO4DjScC4D!=tT z5_ig))%RiRl-o+zEcTZ2mru&Dl~BEP?rDc_dV_4D+1ZPSobER=Ki+(@|C!H~^47c; za-tKi$_S@5A?j$2E57@@7j<~$ggg>BdtcRVR;S5Vv7UF2%>xeH+JdE??w=a*v8~&A zwm#=VX?2;fCds2|0V3?in|Cw+_0)3T?_+3oN~KNW;J$sGSu>NbyuJN|e=pz6{zUfe zn-~0A9aV9<Pp@v7te!rjaYz~0`<I>0U(T$$wv<cfdC&)&9j|-es=fXubNKH;&e`0P zzX+5k{BaNsZsgvcE?v)gWch-mwu<X7%>Pt!^_Et1Et@^z#$`XrzJR90UlF?!q8yE1 z2wie7c)d+l%ys#L6|HFkLTqfg9|Pxi&e6=cVRv`hO_{}E|F5+=hHZdX^#|Xp+1=Xi zo^w?8DgVXXgZD*WE8OV1@4%SN{Y+vm_nZY2HhKKseJQNOaQWTvjJoap&%#@-Tz>tI z)4hL%^^Lqm3;Eyj`OH|7^yT!E%YmR32H(E=hTN7}{BFyyb-DQmf3;;x=S7>Olxv@G z*qE1hTUJRcPk!MAf$jdQxOARRikizcFZzc{>yfy<CMVlY&r~-{bPauQ=<Bj*pOrIK zU%nEYxO-`jm(1&LB5#)6H~u*D`XSGzo(F!~%e(doWVv~UB-!T9k5CRXc|5l~h3o70 z@}0H2KvR?d6OL8xcd6<6_vQGv65-~{uAg>Wir$Rfw)pTL#a+6s_DWpGPEGESxy1KT zS|cIX1Xn{rM$@3a#A?5gheV!5vXFYu+2`R&k4xIWG<r@B>8hJ41g=6^e*aQiRoFL? zw>+}w^|y1gBd!STzPas3#=BpBN52XFQQVjmerjjg?oW}i^JYI;w=yYy!>(WH+1mfs zoqBn#d)-Ul?GZjlHy!;Fm>1g}`exbv%N`!ai`K7UePU6*<BseTiJN?7H@a>IZ~xnt z+ugrWQb>B++<VJ!8_i8_y77RG>8IVUCH2zRzmzmJow9ShCUA#Ga7(HD&9ncmu24!d zYdYAO{5V}YdqKn2jo*`9^f*{n9+=kD6m#$J35D%UiAy+6bX~rGS9OJ}z1{x%>X}oX z&W#J;*nRTj#kCHfIIZu*7IAHqwXIq5=>1xmzeZC}fztEbWS!WJr5877yWg0m?NwvD z@$-+|<x0;d<o>jrb5MSf^u^{S8qaSXo_z6%>&#&8?sJ(XTTEtedMRjo@X&eBE%B*S zOCLT8Ijn7xo_;=TdW!WMwcj(k%2mr2<o)<O!|UO5cj4J-^-kw+7|U}U_xM#aS1)b* zx+AZ43H6wX-Zi?r=QMx0>+jc|IfviBH`h|Ewq)bY$kjQ%AnxV#l_8*Xr*G-DUhClO z7m3j&6MR)~*&C%_xW=3s|J&Sqj^vm3KYty*>%3e$+j9Dx%>`i#Unn+TmXL~Ru~V(~ zZHhg~w8%YDJZP1XzD?PxT}kK9Z)^7Usk!=yx%BY-<8Kq(j?I_Xt(lf&J9oL2k&<2W zi)a7rs{Zi2)%jNRrcg;d<M|i8`|}Te6N>(L^G!(IVxbd;CmOasnb8BP>)*Vdy~52> zO<(HUE$N@G`2|lTQXIgYX}3PjwwGv40Kp<2qXwDD`J(3y8Kl@P*(4RNSw5K!?udih zA`C0CpGYuho-ky1C1uG5YK&ksR|qOuaao3$VcJepi!*!-D-MGW0t^rYZH$``I!ca) z0PRB{<-9+`g20)-6Rs@zV-y}CVaawg_=UA3!zW$U<8RI=7x8@Rlwn?AI5D~Ai9`y& zC7VOC((xZB3{S`v@iZKB>H9b_c>-wZOK+#lW98#4R#Csc<-RnK4h^2Y_=zk?^{bii z6|cRsR$Z34ygIyicIGzI+1oNAs^)GN-Cn%rQSr0RuR@H6-WafVc>72kJ>J)3d$sYc z-tDzNW_Dkko4Hs$;-T<rK9GeWetm+PN7mE@T{Z~Tb2PL(_HAXxi<OsUlsC1-7B_ED z%$j&7ar;vx?dXH)d)HrZx_wRNj8Js%UBkrX9eL~Sx3-<GD&BlIeRt{S0>isA*Itmk zW(YPlt#9MOMSCU$URvRH!cZ-A%g)!SI>#+$r$v@puh_QYxYn|@qVocZ!?W*BlRsLt zj(PPhbv9Pto9=H5?(Mv=Tea3~*4?!)ce;iLU%$QaWzyo%`C^v4XWiJMTFaYQZoJyK z?tw$G?!&Ka*WZ1)^gL;W^NHXso7vM7ceSUd&Xcd+`%EJ7`inE6&V7s*X6%}s+-5q{ zJjLbWo$Y7$ZCIe4b!CCt#+xQS+h)%?^DklD4W3o?)oW&5aX+gm`uSYI-DeVeKkUqo zo52}!Rc}?*^o;KQZTn*aU9I0dDKqcR+Of7%Z<6k8%Q@R*(!CNdmlX3QXl?R-BC$+P zIOOfi+j)ug`9&WMr38I$`z766cyG(YCCi@5x^8d1G2up><9mV9+KP>t(w~YS&RpFF zN&{18CSPG%@j@i&anD(KzP-V{MsrhcmvGIx$5SSE+v830a}jIb?IvGmCm-5s;J3c_ z+@*}^o;&-ZRtdey%>K6g(&rhy6Et35eAl)5_Qo#T75A3*Ng3o%c3Jja+bM$Q-0`qG zZ8O8V{pQ^$YyYwNrQ4g6h3y_$^TniJ=gm6zN@HVQUj1dy;<R;Apa{Ei_j~djn}-1x z59z+L+Zeb__t$UZ8+Lhz-&~zzm$yBnbawI;so8T(zTA?~IkauT?I`HN{+8D}{NENX zzxp=9wf|dr=FyNZCVV^ZmwlF=7X9(|qs6t4-o))!j6OG6_?qoGJ<DaTxm{szG`2;r zNi@&y00ls)`SBOuJ^t`08oLL82CX-iEtD)dnjevO^#1H6e#JczKbm?3TzG%4-tKsI znZWYNYTRXarv#g}8!lVC)H1^@c+wkjAEjGWUwNOI8o%1L_Qv7Ui)QFniTQ~i);{9> ztLIG1JHPy*+v*$NhCGqkcym$pT=nDoTN;dA%DpSh?s)A9ta!Fc@i;?<&)u_z&z4(0 zn#`fRYl%gzi}BOH5<A2DbZne2D6jQj6B{x2nZ)KVTt%%sVex;bx$aO}#cH}T!QC6Q zG^uO-nsbazoH-}|q|R;8TQxcFclF#ZyJ>biWTpB{kNn%G`}uIv4STbl)&?tc*I$~m z^Hyfs<^9iBYh^_}&+L#r8nX9u$nu#5BDZxnCjN3uhr~umTA!hLhT;j)yuhcNl2%{B zf+zb(Y&?@##<oA<vH0A7Ra!ekcl6&$z1?~>v+v}jgh2OLus5DQnW3Y6yrjLdxmhH* z{e&Tdl(6M7_ddsO6OtKB)QWogWt!iB6+V%Ww`9Aiyl*n&0>hcV6GSYRNq`E*R}&-N ze?AqHm<ZyKR$r#{{|wh<T<~$m?}RBo%^!a{0X8MYf8qNSh7;ST$Rz(${a>SaTwy*z zSAnzb2}8RgAJft;U*6unlxP-U_(X!CcV&8!&+i4^`m$H@%(7Pb75l7@JDa=g=Czz# zixOW>y$@a5fBdcLCl{x!QdcJClx?(JwyANM^<_8z4TsdjK(mOwE9b~42X#a;E?t(m zET$=`sON3)#S6j9E!|RhcXP3Cbh@I%c{uNMYWTLM^HuQ+mu_EcIpb*b{OrvMrx%-; z-&Vfa9QN%6xS&hp0u{zu#>a0Y1je1v$P7__0^XJ+YBDW(j_>9RyJSP6uOy3JzP6`p zbHeF`vsSs7&CPo#Q15Vmn%K{C{%;nfwODMMdH9Tg?0lo>8`HkLft75Q`*kY(TQ7Uh z?_S8K=zsB?+?>{za`UEkSQkaxUtcA7Mqzu)i!-J!XocHJA`3T>U8@&Fg!6`$26yCv z%eG`l*>*Z-NA3*As{OL!C!Nzae<<{E<@?C5z|#Eo<gJ@I%C%<ObJaJ#3CO=y5On!d z-=f=2IUYId7nFDGs@2SKuG6zA=AD?#V6x1pxF;@Nb*@v+oQ*#ZFDzdbxNLIHY(K}# zvk#t2mhP;5Gbd^J%W2E%ihXui9ea88Ql!q?Lz>}XC<`{b*WD03^B{j$_U1hIK5duH zecDAFS2u}nPkeS!XmaqDw|pPdFZbREe#kfR&C#mlyS|qrWmT`8eVcEUc@7pTzw3G? ztIKFb?Qp%TZgy&$YkfW2?c=#K_RhL|{Oz<=dBr_ZrOjLIyw*=UxG9Hw*V<Od!c3nX zo7f+H?)cmERw!rJ-4bg%gO^i80;d(Tq=?_X3@VcHyZgUoZmRy<mSgGf8u8s?_mdf7 zTQ#FLF20esvF+{~&~}#ImAft7_Paky=a^~PH0j>!Z=GAY&o0oeJ6xpw@19EOtmGp> zD;_ofka@!K`}a<Gk)}EoUZiz#E_%K8#VYPZ_0U=J_qQD9?o(0r`y;ZbSbJ0T4PW{D z-+0QGoqM)@Zr2=Tv*?obpF=9#H_lPq75&8KZD5Y-Jq=hyyn80``LfJM&lbVhpgDGn zW`3&cxufkaHc#=zM9^678o%P6$R5_6X>6}I)(I=eC|?zt9kOAus&#W3`_D*4o%Xp` zLN=b=kpJU))tt-SYd)^42=rMU6c})&ePXocX4S24f9|Y5d*aNp`t#wTSGJsUJ>HkJ z>R#ol%RUxeZ>QZbs9kJ)T>zRrW<+ljc*3=P#ite?*{anmJ=J<5o*7s-$8Y%9?N@I* z^^VpZ_jjA#9(rYRoZ&7wQJ*?#80psMXa`DAm}M5cbl}<KUZc+JkZkn*phl68;R!<q zhAYY&?>(Qo^Uxs>M`1N7<O#XY>!X+)9vgl?sPQ@f*wcw%Q%=ltx_^>kLcXTuu|MAb zemW83s&-Jl25Q{Rxb-UI<?ZcD59ciKAy|Bs-h&li@1M%Kyb+yvD2KywhsG3RrMb;J zgROp-#_E`;94ph_wBMV@aJi;P#k!znx{o_dK`Z2EoH}W!)H*}dF-t1#l&Xf>@f&uc zytbvYl3nI($S&D%rYkDt=+@gsfz#GL*nBTMV_|MKUs~t-V?}$4Ic{Ejo3y;YpZkcl zb@5LwU!^5)ibQYfPP8_Ax>IY3b^AI|P}?8`r7@RQnp=GRG<e1OrdMSFxq<zmKGEHw zlf<5T=)Q>05beMEH7!77zVC&pv(H^S(74FCyGB~0!}n8i@#dETJYn+>XYQ4Ja&Lp! zyydfQPGfr4@~(7eZRz|L&qH-p^*a>PSBrzgYPV%t#N<k6H<7b{@4n&Y-nGb$H%n-? z@8Oi)D^I@Rf7W$&!LRMdS9#W6nG<CAp66<A-^JBScbj!Ry%rE^-uhzOkBr~1U2nX6 zQf97QxI_13)E1=~nIhJEqf3syel=m&3!l7u{F~-JU6&Al<EBr_tZke1ZZ=MAvzRl} zy-!H@r>0HTk2@S?Yu?3V>{y}hm()IcUDfi;E1b}<xcGYYlHiVBW3zgTFMg({N+#uA z*376fzEPQ@ys>|7@Eeo6m#*aZ1#)L^xZ(EVX-Lf$?(_>`-FXh7@Kx!8>(1(xJMA{# zxLjcU>g3srGPuuq<y-GwTw)!@sm`gjv2mB+>)?zjYSt`wJP+-CH{1E1O5(-c>vlPU z%Y1^R8yDlnC4v`LuXy!9tR$LSdy(oc)uR%{JeT{9OPxKZET!3gIjMB7q-K{hN0wZ4 zx%Cfcm*_9wfB)!>nD4ZB%Z+6L85L{R-OdXvTDLk6)NWYz?wQ12xz72DDbF~(s@C6D zzouu>yzU3@>9s$qCtu0z6XZ_aaEtx);=emx12$_O0qp|X{lm;0+D1Fp+%5CWN94b4 z{LYBgd-E=eu4La^YG{*n!L#ODI=9vBu9vCSue<JLcQ4y-Yo8vHlXh1uX?9TK!_LVw z<TeTJhk1H-@)`f)BkF=~C7y-9I?_)4HY{2%6Is!=z&&by#O@7NXALJx2<goH=B`+^ z^Qw1#lH#UCw<JxhHDtt!_!gD9ho^7do`3pJ#Bzs}0)sPW1mv!sTkicZ|0UP1&DQ<K zy_y|9Vj_=?TbQp#&UDt!i|)wH>O9Qtlf-w|=*s?eR^V_yb;j^noF2>0L%OSM6rJ1e zWo1p`RGwye=G+7EoIi^$$NQ^p=lVWzcMjMw4(6cJYgti|&$Nlj6Z}C*8r+>zsK(y> z5xjqr;lhkFwFX@>!93ve@jcdjuS{LH!2rZL0Xk)cfmm|W@jt7lF<huPQ)_VQ&+Nj= z6tF3qmR~40Vt5km)o1vBQvJRO#JCFDRE!rZ@_}s<SKk8Jp2KL{4Jzlp`t)T&mM5Hb z^SxT!CwOy7`1&s;Nsql(S}t4C_{t?HxXZ&(RdydoYJ8N(-14R8wY5PZ5Nv7bwnSj_ z8BgECK08^CK9RV+e9^+?eZ@U7`)AL-eEq{a{co;(KJV4Oh5hNBv1$E@Nya5#S)PeQ zs}xv^tNDq<-oEzyk{z#iWp?|k*?g0=2ndNfbH1#}NAO)ZtEt!5%)HO(88hFv2)_R- zdinlbm!QAR@|v8B{4G)+Il6AR@Y~0}_DI15%e;sS)5X>vP20AVW9$7&rllW3lGF9f z=O(`r+}N~zKWLuJWZAoCGZKBD@k$1onAdLB*Ll$;WxB#M$BcLK+huB-?PqA4HNUzq zw_5FMV6oTHJ;ov1E#1~1@>|5g_3oU<;dM{bI%1ZTy1o<9-QI8Ctl;+I?zY68e;>0K zslR-+psL}GsL7cF4Yph6UN#9z|Mq<2<HNCOF$&u<`DJ)Yzil^tedlS;DmPo@;|v)- zsm~-P%dik?VZ{~q#CfG^N3<XAy8KOgo9yZi(;M#}o2hJ`X6;?2uyKEU&)c`37UUhS zVPt(@cI4L$-&jqP&7xtG<~ba^Z_<AKh_C|Nt2VLQYsx_>cjfN)$1N%kEnL(ZeWf;O zaZdD?@97(A@3h@qZCQIKZ{;hK<43|mcRtwldR^{s-rIelyLv>rybL%E)pkPd*`-*` zHaF-OOKi&03uhQ_9#t$q_G?Lg+ooA*;IvR)+*8+o<h+1UF^lTn>u-g##b-H&gIBQb z^?YS=d`0W6El)3LPK(%SG<#OgE7$8{cT;a{dD^v_eMTH)Z%U?d>*2TaEjl&DY6G@E z{33XkX?ob5Gi|bKUZ@*{_2jpGmX_5$o91Qu`_GGI#T$NsTN%3umnauoFGaSCe$Rh+ z;%Ruu8~wvvWplSOe_?vNZol8{GYQ-7_%W8xJK~w-di&;m(bw`OUo1H?r-z+66P06J z!8BL$ib$(@XnA!|RYA_?d*IT*sJLh6L2k!&1>IWyCoU}9K5JIWp^j9(&Bi}irT4%1 zay|Iu+C#NZ^ls~|@hkS}=M1Y!0gv}+sUJ^~v{Z9CBJnkj-KZaw?ItGI^nR)1`2?E9 z#WIleaV`%-@5wvti%%FHRRA4<)qkXFe)uykZe<*IlYx%)YFLAtRHz2c=JGO}&@bZI zw0uSnXpyj+1Gry#sRY_bV^Da0!tlhrO~pMCkE&UfvTLI^ujD$LyXjHMRNK1~m$^H< zFUl&~q%_$j=~;(tRCw2%0F9N#3@I|8;jy^Bi60eW9vt4VFv(fM`PMAg=r>zqLl5$@ zzw>i^mzB3|_tRw$N<1F=WmmL|3GEUM3rc4=VF7Z=8W~}4`LezKG2dL%pYw_-Ueewb z{x*yI+v!@}ti!TGTaKnbpF8cvw1=`*w{-7ZXnt}=$#v!=8BOi1T}NIrD#U{vTvXH( zd)HaZ@WfHOY0@ei{Wn$5d05n9J@uyO8MRyQ+_(4tkT{cZFSGDB%cFL&NxNP$yPb3E z<2iTmO_)$SvxDA*<O#N-=L|Ko_nZ?^(_=~c+bo$AA6%Gj_I5+}!*891zmF}OWIg3Z z;FB5qbU%k4eXC~4&e|ZOcwC|S)Jemt-g4z;Plh;KzY>pL>$2%Rd|G-hx~x@<?s#fU z+~qGDRkQ7`%i(!z^^T>N75PN4H{4MIX*^{(k!Qi-mV1**pTFh$DJ&njiB*;(D5-J( zX+F+nQ+-1-&19Pm{p6iPlG?BF>VH2m%g!s{qM_P~6Wl$1ybP8ueU9IzOiyOn`HlUK z>Akh9W%C@5vY6`~`LVmHYp&{#-#$js8D%YcmckY7VL9g3tursbl{;;9(wNa<9muz- z&u7SNTFJ^FB?KBmF!D0=d0zu6nsP`VG+<!BJ;)Gx(vX3HVQb<i_wcT>Am-OL&{+N^ z@Vz=jkULE^_n#51I`huPDEx)t?$0M;5<%7IlW7s0WzPanaUEBE?siHQv@>%;w9c!Y z2UW#EsrpV*;CWuXouE5vo``i<<rSQ4osi6+usz~RakIA`Xr=znql@CiZ?VT#y<AYX zIdIvpT~EAX0;dP*-E{3^Y`C-P9+$e<rZ~pUi*{z;-k=tkFSX2EYkgPuF010jLE;k@ z$_QIubxM!x)P5BNvwUjILzyH|?nB)Q;dMJxuWx(tE^Ec5MSA{sIQ0+D(h^D0+W0E` z<)p_+%cEYL(Jpk2_1c*t4!R^^^(5^W50>dKl$M2?{@!>>(QU=KMf3JpoaQ#V5_dH_ z;KMrK2_=WN7pADn2=l#s792F!``Zz}t9fd16aU<}BJyU%mEGZCNN!kjBS^h7bWi4t zHStl+0?Hw&fz!Q9Uq!817qtGxviY7R8z=6Xzi7Vp-@x!wp;NuTtz6wbAwBLvSIYAT zhg`(JTdruC;#~&X*0fz~=b=c>)tjQ8e_3Uw@h{ESG$b|9e}|rHT)2b&y=}Aej<fCh zt2+0?uHSP)o=&R$xAg_L$@N97;UX_{jAB`r#%$^aZ8-`(DXRBmZN$Y;-*r`@|0Y+) zl!|>_GBqO3C!i-Tt;n?_m#c1R$<>`H{*Shb>{{e8SB9Bk#TKu11$-OpEVHLY9Jms; zW0mXoaL1`)rIq*mSSIg({#xhivsH7v3QiXFPrma+SctRe-Gri0aKL7namP%&z4MbH zD24H^pQIf#CF0N-e#tjn;*m_v1;Mgcqp#e3eMwwxz01V?m!zWi<ldH4W8b;?NZXXv zRnuhzt*<WO=2?G2*R9ykbqT@)>*ig_2wboJwc_N)3&EM1)88l^XK={dxZ=5+ZJd!M z8$&=S;dFPzYeM)lF59$nxtZEuX56hzS!Y1ZZCJ#pnR?O?v@INbjpfbin7_UM<<k<G W^i`8<@)#Hx7(8A5T-G@yGywp5B8K4r diff --git a/doc/images/xca_template_client_03.png b/doc/images/xca_template_client_03.png deleted file mode 100644 index 487d390cade02deee6ca28b95d16e423f6cb7480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37143 zcmeAS@N?(olHy`uVBq!ia0y~yV0z2Iz%-YGiGhJZ;@^Rf3=9m6#X;^)4C~IxykuZt zU`coMb!1@J*w6hZk(GggfwRCPvY3H^?=T269?xHq!oa{FRN@*@5}cn_Ql40p%HUp< znwnRfkzW!Q%E8LOFrm-W#WAEJ?(JO8J+Yy+?}gbmhR)y0x7Kd0?)j(+yY!x_jSpV0 zzO*lFZ7GM5<n5{)+25~tLNiuAc;lMJVWgtSIn%kwcyi~2#t8<_MVuTejRHm!S}Lpl zZ@pIUTfKhod8_C1_P)1E|G#hk<FmK^fBpaey505N-+vXo+xxulhX8}ZkwACZuZ{dQ z51QrwB*e$xzbGX7|Fg((kbl+OF5La;%D}+D(2&>s&s#{28N^)o#998=g^qpu?Ce0H z!tg?_<@lcWweKG*gH^t3lu0|X@wnV+cMzB1F0&<%4I79V>sj1i`RC)`>N4Ak_p#e^ z?rwT|GkyNk6;F0PpLcWj^M$$lW4|A;Jze&0Py1q!dWNL}PYwC=@0MKm)i%$M+5dZ@ z?0K8NPmIso{5*5n-{$9&#=pPI?Q7oW&d#4v`+b!r|KD%Vp3krE%LZ%iQa_aZ?fvfJ zw~Jn<$CcfEve8^muHwnW-{rQy4k-8E`TgMU_WPSF?;cw@UH9L?>*9Z(o15v+|Mlf^ ze=#pezr#n9?=${Ze_uDN^ywRJ|JeoC_WS+1+HaO0RsMdOw0VA1>E+(y_3?(8_xSe} z9c8~?`P2R0{=`4$<?3t9uY(L&kaVZ~er^4q<MlR9pC0npSDc?`YZEB8<=wBZuYVqB zY%)2@u6yZD^0xe&o3g&Os7|i0`|AJy?Vk6w$rlf;>=ujLTyW5Ib9$^{@vj@2_kW*K zt$n}u$&K&pZ2z<O+iq*k=3(v?to_?uGr_`$=iB#_{#t^w&N)wcCG~2Z)sBM?RsNRT z?Wnod%UB9>ipbeZOTGQ=|CU^uE@_;0q3!4D_`hB1r<!V>UN{`*CI2%*i09blJIQ8u zD;}@PR$m|cWp?NOKi4GVf84pTasQ4Nhvvr=oz&Og@gRMA+^zbf=KG88wco41$9})^ zZ{+<Odw;8~D_pR4wt4og9hb`-9m~z--@MP?x0$`vBf=*-OyJEm!Ao;<m+T1L-Eym* ziGd*@qVoFgd#-+m*;OZPn06#l+T{BT>#(&^wg!ohzlQr*KEG{m@iF-M{Q7T|&;R}S z^SQq4-A?=6PyWo0FMXCd-P}*|`j0!ewClDMKlfT!s2Ds^S}Zq4^ZbIHW>1uNux{I{ zFSdQ*GV9_cdzash7WtmZ&cJY?CI0WLaAmii8#@Y><)?QSiW@)Z+?MgqaQpg*jb#V( z-$i_%J@a|}^LF)`Pj`yzYc9I(-}T{8UDcmwcjo)=dJ%qE@8{D!tLsW%e-$o!6LH4W zt~tf1cH!LFYMZ_l8!iptOuC(Ia_0Mdl_a;^_Ae7BRxjS|&L(9Tvo7%R$&&8)6->2% z|H^Ew-t<o4xlr_0J<pcCu16bVqr)steyV8rY#E)jN$I@t)M<s!?(Gyj>#q>=Xl_I7 zoppQ+3=2f`_Wvo`_4|^$ogCja?`FweM+AIro~=ACzrXI)71PgpcWX{xWuE@$fxZ8q zCzba0$$xfquiy7;Q>Spf@!wP2&(7{BdRZELZQV>e3yb{YeXn=ubly4n#VmaxufE8) zPwY}@&o?XHKHJmmxN-5U75;S#CEP@;tV^?0%0IjCM^3u4+t=ApM49UaPx^`pvU9%f z4C?voB3Sh4O3G#v)8}(`&J=aFoOE~2F`L}g#$J=uA1q;HV9=O&|M%Ye+W*y)g(mEq z^2E^k-Twct{{QHoYJB`&{r4u-@PBWPtJi)yboqbj!8;$d!_V#f_scSSn%~V0X~%N6 zpS!yyGvW2Mqt@l?9vjKu+9cI`VVkPinIqe@CQ7e#U9#hLT!9Q1+waRNleKu(yq*yJ zVqHd3T$7XAk#0#pn?EU6Z)MKp(w!x7c|zdC9a|pEY(KAiW$jZTa}EZE1vW44?J0Q~ zWGBIQZTipJrPkr=|2@@QzGg<%)5G8IZ>c)=^tq|uz6bHgb!JyTUABAO{i5@?ew*o5 zC!D^tmVaHvi-n^7c2$Sx*_Id2<j#+1-m+iyh(m7G$^-+MJKT2*HD<g^RyOexO`FrF zu>V5r#Up!ITKg{SPg{6l(W>6-J)F9)`f|;KWv4&Wo#toUvTNt#8&F4iB)!}H-p)>A z?$>?0Rrqc@RGg{4|2xjk%kcU2{r^s;+gD$1%KrZTX4(I@=I89bPq(*w8T`EdargH1 zvEM#?)8)_K{rh2Vxy`1>>tc7mySM%QJ@xr_PNs_8y7r~a_3)K8-EGF-TlxRhstSHB z-}xZ!MPIYy#wDFxOvar~_V+LBxxlhkVacqULeI~*cq;k(bj!1QwHb?*9#flEKkwm| zFEhIrXijU{Rr&Y?)Ukf{f4@AevQ4W!5!H0CV%8qH;&YnI|GaoCzyEbxsQ#W0e~kTY zOFv&)x?HaO&h-D!CrXR!-`ijQKDqzx-M!V%=h^nZyS@GS%jNTH9=3|_@KOF|;vOs1 z-gC!Ha`V=mj)9MIs~7njy;D;;))N!?y;SGm%V}}fC+MAt2-KhPvv{AClF-$_j6lQJ za~lr56_9bCm;T_hf?BA~pW=P5YMSo;DU9LlEn#9{X!x`s`uz;U<R1%SGG2aFj9;kW z`_Zx6q|!F+Rb=|vKS%ZDcDeuIJ@I^g{lCWD@AtjxF+TTW_I}A7PbTfPF1P#nWOBcK z-Gfebx%yWt)#q2A`z<^vq2q#?eNOZq0l^=v3=9o=3r@Z^G(R`D`u^JOb{p&WTU0!3 z{agJlXV1G`-uu6<-FW}!xy84)O}uII{Z8?hMz)vY$qv6Kc+Qw^;N`w2$f#yDsQ&zD z@^OZB{*J`+=jNWbJ-vRb&EF@Jzuzr9-eP?I&)5BbPAl`<ENEJ=c*XluQ{D?^#j?ir zFfuS)kTv<aPY6_)JEUfQs^WpL8bP%*!-8mH>BRn<+#sD7at|bf>9w??Ir=T1-B|pS z17ynr=QlSur~m%;c6IoDgTzBW&dxS3-m>_?R|$}0$s}3pvO86;*G`YGyIDW)<JtQ$ zf9}q{7Q5;HL&^Pi&!^km4SZk-Quu<Q`rDhx{dIqjipQ56dwE~7`edeb{+=%<|9+0I zdDtc%zvtgc+v|0Y9?Rd{l*+xljIRO|NCBB<`S)sW-rzoOy}th69?Nbqy&a#=S<6>G z5uC&}>(<i+liFJk9y~bz-<RX}e}22ZZpWWD*6-(hIr6xBetq51&FA&1zs-Dl-mds? z@%gp2|8`C-e*W)My8UlX@e-K%@Am)y_y7CX`dOAQdu*eZ-z&YWI(ePV*FEvIzvsmN zy?$fk^gr|W|LC4<|L0--zZ35JzD%$Gc~;nO$Cmx|kK1^6m%o2@O6lgt<l_$>ER)WQ zu&cYn`h4#9yT0Y|pZ^$NpS;!P>y=x~?APAhE<gP5uQuPCcuhI>Fq_Y3R;AC2tUG6U zf0k*s+Vygdhla<&QQ5$?x%T%r?sN9<&&ZqARUe<K|4x3vabfH9wXwJAzt#UaT>bxd zw*Ajn;r}1c|8tUaebv?FeAaK)*Z=>%zvPnVY_r@)r_OCmKR@sOzi->M!`I1}zw6q3 z-mdo7lz6)hskf$`73O~v{pZPK^EbD*r(ItsEmxQEblY0*?RGm-es6nSX0zwbMA_4F zl_@vR&Gr8NF80@zVC`>jX8xbLzUJY(-S40E&1F~*PO`BKnMaQGO7H)2baGx~@xma< zDx3c|=CHrp_i9OhZN?ev`!_3IM|-B)mETCLw=a5f-0nl;+UV`??(L1P{k>9k#jAzw za<{hSN^>6PUA-=TOUA*<=imN6xWB*lp5=Y}?{nUto%iu_wV8iS%JDh1{koNJHm3I5 z?aKN6ZRz*>`%^wYV=cd9`2AY+`n^x5MVjBYc|9#U?S9?wIli->-7h}BC-=74yIWho zd^{d*_y5nU-|y#t{`>y_>%HIao$lt91ShHstP>*s{Jy^b-@fVlzS!pfom_hQ{AR7q z`3b*kulM}?(Z2uNzVE$17u#EXEM0H?a_ag&tDE_x{@(QOk*`0gIz6V~UgiFG@Bcr& z8txylr{ZCksQ3Eac^}Wryu93hzLwnOABM@lwp4z8c5a?+_MacC_x)YFzV7+#<YTel znzN71-<R>u|NWk)r+#nuxxG94;k#JxvNsW%N?%XXjTXzjw<qKBGS~9ETOVADetxgy z@*30ZWosi0Ge181$SoFQYEW?Wz#VNdy**h+yE<QA_uu<^UH108*e@>@Ykzwi{rimZ z>-dVqr@Gr?>VCbvuX^^8x|s<$?>St(xwrcJ%=<r%E$6d(@noX1y+zWI`QP`Zzkc@d zRPwxA*7@g^i=UtSb#wW>-{;ovc^#|1|KHd6n%B|&_HQ=qw|V66VexKX^~YnqpQr22 zHmm*?+AS8lIqmEm)9kdhakiCrttRzwN?(iL`Ei-H`5lwI!@l8n_Z0s5^)>v`arQdv z?DOkftIPFoetl8OZ(DNr@Avrf>#^MV`zqhv+WJJ>IDbdtv9H(t<98Ol+LSt3Tz{TH z{lC!ban(P2B$Jo>?JfEAr2C~|=_}RC%j2zTe;wVN7P~9uWa##LR<94TPq+JW;nZB~ z_4mKuShalqzJEWTPrqOJe8*|M-&gx&t$)1aWdz4}Kxtmg?r)dZ*L~GgcCRaYa$<hX zW9jYp>wZt)SMlgxu5tVXxy`k&4=mfgtp4wm{{Nq?@Bid)m;bkP``))l!uS7D*8hDs zJN^HsebvwJ6raCy@GSSXoXEQWf3vse-rkXW`|PL3ZEtVq-`ZEZx8}}{+TXi!Z(qy1 zyX)6M_WT|1_l3?j)7}5~o2vOei~N_DGCx0ywM{-I8oa!3uHD~FGmYzwb7uui%U-v$ zWlHL$CEe<NA^qL!_RW$L_uKQUY4v)$`a?fHAMdxXKQ*O$nvP`sY26YgZuy#mlYO$M zzrBh4c0^cves$i{ZhgJ|zu$dKK0fdJi^ct)jB~`H{;vCUSiY|6NXKONzCX8>`*u8^ zSFN$B>g%h`|31I=e=}>X&9iCI%jW%m{l5Oo+4?U_mHTsK3Xf>6um8K8-}+7a|FTn? zmQL5-`_9~Z+Ml$ONmViXQa*}yi^Xm%cqqy(9<$NGW?hWI|5dD?kDr}yUw6-@%11(C zhC%wd9g@a+^Nmv9JUKai!U7BaFtO*3kBS~%Jrt`q!{8xP(e%Q{N1EAEEU(8^AN}++ z*eqv8@%314xr&63hxy~TXJ6mM%pPX@|IaP)_!vhm<I-3Cb^kuk-}+J5M(<E^pXD<N zyHm-hW(XcxvDy5?#^za4#;yD_d4tc%8D~wIF|kL=G|g*4*v5xB6D4x;IMzS9V4}#q zv+CcYyG_4bwtci@U|<Lcm8<*l@O;gW!zzaJr7b@lzyDj#{rkJQrrFP?POmG!zpnDO z+??v)xxwqAjlSvMt9&BfZ}X|U{#!aITO60KdLjPr{r`D3FaLN7pP#QGKRH83{*}Sk z9S#+p%Qc@l7JgkIQ^!#|bHSIVhYBCRC}gxf*1vpZ_j2FeH3<oqHl=RP+mV=XxQ%uD zy<G{H)fO6Am+9Qzo`02Fe@*>I*M&ys?f3tgecvYa>Z;H`HMg2%)Gj4&QCBhd+*+)* zNXAEa8|z#-Wur*TRqoMdO5W`kli&RMq{(;G=}I~ysB>?7WbgNT)pz9of7DcV|M%6A zT{mt+!{SfoGxT=;m~(b}|NWiG4{N`l+gtf~O1<RglaKFzIi|n&ZSL|t4|$&$*8l8N z4&HR>+T&NB*NgE#)f4wyaQsL2vHtxTcXo6i?_Jz4KIxRtjDn9#JV6=r)2*A6pPiq- zt>UB4rx~x;?=L$$E89G0M(y*t#q8|Q@74eRb9eW2+y8%h_4id=?$*C_{Pp+u@gJV* z*Vk#-Yh3O+E^)tL+sOsC8$NW1C-~GHZqrOoDLf#4<(=)amvVA3Jtt>px2?%tzeV}R z*N33?!=#*>o1X44-#^plS@QbYx5s*=H9vhg%zwY;^V!qWW6euXEt&uC#cBWdvK2Yc z_pJSXcHgH@|9{-R{%7BZ8Rq*w{+Pb+i}HJmqEAn_&%8D~_n7Ig;g=mzHaDWy?F;BS zeN^~ZyiMI7)h`m}eR9)JvCGEUBpy-~R*y4FJvG%hEylL`+moA{m!FwwTzYTMN^UWq z*ew~SK0OT%TR*Srac{7B&Wy6#xyIXbW^ONj-nD#w-1j@h=KDS{t>m%I+wpSQ>9jL5 zR?W+l-tx?_YW@}J)DNPQ5&{-3o3vXe|DK9fqi26kq~xW4xwea5gPMU3=M!z773Wvq z{`2$mdHeUzkN5vOvSZ`&d&RGxe!pAzw5QYl&aTWmo2#GOe7mqlv|ImA_w~R3?Ek); zKkv`4>-F!->%afs^Y;Yj<D=cGkG=|h4OqYI1UqNfpNBC&XB_C~eB^ko=;e=($;bQm z=iJ$Gf5!12A72$p+N$~N$a!?+^!lA?ceZ4PpP!@orB!ZoTC8!lSg-oonZ}v-_H=fO z`R;kQtMl}9|Cqg1pN{n!zuQ;+uJ*g`on57zE6@D<n?0|#Z0{eo%f9-1HvC$|?U(!e z?8m6D630`flrQ<_BYAdG6L0W2yW5o$-IBhlZV#EHYIHLAW4&4W6^W=R={wlx?yHhZ zQfc=K{&;DkreBEguc@kxzL&f@gD0&ncG_j*`mN~K5wjU}Ca=wlyPm#|{}j3N|NJL& zeZDPMN(YT^J#~`%{L*~?&nFX=@Bh6OKL6X?^ZD{J|F5izw72{`|Jiw)-$(y4@0Odf zC+p+-vi#ZmN>5+8dOiN*L;Kp#o%KK3=T~1{?Pu|3!~f6w`}VwA#l3#lt3_8HCsmzz z&$V;?`W{*Ha~-FjzA~))Bl^lP@zB)p_}ZgKI>Y_u)m*)@GW`4u!<lPRzvU?E8K?Qo zGE81nd1j7f;kP%P#n1ib*vD6#Srt0@`uh20r*${K+mrlYUbR^6-Ca4)&xQW}wzlrs z%+f!+%f!R(mcPFe|8LXT{cU%59sls|_>zC8<MUf;Zirm%xosjov!F}9<ox-hb0KpV z-u$!jl=bt3t+57o_Cz|px}0(%R&P(ly{K1}KhK+X+Dcl^{TH%igEkWbgNE#<85i^G zK7UkpH?#Zs{QSF_pYPnW{4GE0-;;AQ<NtqpZg$`3-GRQBkB`?q|LFcaZ+HDO+3mhR z{~WjfGxPr6yN~&;d-gm}K9qbS>O_d%Wc{TRrpMSNHdT0-Cc1x=51+KjBYUTpt(u>V zdF7`c+3RK+l)gIh^0NB*IiBwpeL1?T`?o^>&TmnwhLhLr|2M1j^|Jgs7Qg$f+1S{{ z@08z9`Wa_*y8La_&mWIh&#Nu_%B{bq>f=#Sf18aTj@$n$uiK`3sqgrWw}u;Ry_cT2 zw{7x@xh5M8pHE|VImUld`RAh+E3@_U3!?2Rm$z06t-2+4dCBFwS3dn|)6|*}b+^*j zb?v;5a~4fA{#-MsM(N~a!){Y+$;$^L<F<0F=U`w+kO+|b{9W1Y&#xXs{de*+KFqHF zzhD0Efu2tLKNltc|5$9iujIkQm-d#Q<>%iw-;n=(&szR-e=mOj|L{jMpH=1)k54o9 zKfj**qVQvAc&t|Lv!bt?PA%~a_nqg{WR!PF<)cERA-|;L`a7wormSA>JNt#*GJpTB z?%y*^z4r)hPH3DkW2*M@HL=#Uhudy$zi0J)+wEtQPTi^fzDGA&EbsQVlIQ1A`)#-V zS-CvS?)x2H{e2aGi_h!YKJHn+?fY}x+n*%%-mJ7%P~Lv-MXrC^Zr_mCcYdXKJ+inO z^x)Z&=@SI^ryOqM4PNGBS>5w*S??_0=|b<C4zh^)ve_Ow&3enSJ9Rz}`|SBXR?6j| zd~^8VGT+&K)n~Kq>Ru>vr_bA2{<|lB&R_lK{~oQr|L0e_zs<iL^XGqEx?FB<?L*7^ z3i~S`9@z6-F5aT{ROEb%Hvy9*s%jpUuHX4))4z|8k8Gdzr2lE(T#JvNPEKCG=h>{) z%X}owOJB8QUS6lBKhrX}W^#v|ae7z#pSFurZf;(_i@!^KU;UK22}fe8b?e<TKR)uj z9&29tGN>xXnYl_Q+N|>ItV~e*zR&vEz4H5u+{<)Sr&j*T{4_&)UVYt7{ko5Pzuog# z#@qjJ?WdfbkC&EN>=ZnfSG_8<;SSrsxY;)<jjxp-ddXwINJ=eW^QW4-zHtx2*t13N zb@5rAR`v6F;Bsj)({qv8^L_H_)%Nf(Ff?4+@$s1SZ?~QwH%`|-Up94rUD^3L|K|TY zeb#)={~O<4rqB7-divb|?U9qu?|Aem-*$KTgU(pyYWaO-e_!4IbM<unbd_gQCMw(4 zzF7GG-`@3pv&(LpUY~HVXYa49Uq5DNuiII4Ys<$VYqj|5w^Mc&FX!X&nQfl`>(5VP zF`XGZ3m)qHU0`Vc?EHMYbiSKsp3F3!{BBZR03Ro>ZQ6OUDCd65VzqO#)z3WpHTBVL zpY3<mY@R)ApZ@OV-Y+|sPuut7&7|e?<37!OU(-21w|mPQLoeGa`=0gj8qL`GzH;*_ zJCAqAR+?pOjZ~k0`bOE@f`4IWpPOWznPHgjKhwx{Pe4-mgu`aGYN6^UWA*-rTt*L; zA7@pk|M}V>c-*tUvhe?b#`fj^AM94I`^YW-`{8$gsTpO@rhK&jarEZ@PhaLW{_Q_= z_wR)}x!=$JJ2A1o=u?N_6GQbr3BzBt`SBM2Hy!O>7h_R>XHR2c@$(DGHjzjFR8D4R zTQ_mPf^F@`N0Hvs&qZ#_N%;AxQakL-^?ugV)6PckDtWN$^)sC~o9c^7LbD{N_=grh z_gi*+j^!go_Q@wgUKko2;D4n*ZH9g3znYJ?&NQ(;DxW@0Z|;_=uUDe;c7EGeEpGGY z!lc;U)819*+}wO#r~YAUYQMeN_pa0Do~GYcT3gBUzNgGR?DmHJr&lg{aPGP9%H{*_ z*3DwuUfX+f?cLb;iG2d^qKe+AS_odg@yLW{-lp9NyUOi;o_;z%>)Xi`yNfD2|IU0C z%fP@Oa(tR@^uI^B`PP|FP9*c&K3P<}@7tYwmP?GDef+X6+u#1HeBQo?f1ZCkQ~By* zHvgL)-!87*yszq0{M?cYj!z69sm^TX|99!d<7?|>>o4~T=f_wVzJ1l1oi}4gl#SZj zNZZ`Evu0*rkEwp#`}x}X_=3y7T&2xowiiDB)GHl+ujaE>RnDCqS%=$RUtb@;G4F0^ z_BEZjy;TptUZ4EpOzgftx0ZUR>&IHX-t{_7FVd*?<fP0`hN1S$bRvs-YkcB1r3k$| zeQN6UHIc?&pUqC^<vVwKTkglj{d%|eR^Pn0_cWhO#J?|>wdYmmJ?+ibkKOx=t?rQS zrLN;EdX2ZdRcn&@TzB&NzhC;xSLJo)Moctbn#lN|-eN_-YV)6#_t&hA5}h3tyXy1L z;0b?=_h~u)S!YykVB6%cp0;yMu<3b|&(CXS&-0o5Z&C>h1A~KS&h2e)kL>@w+y8`k zxZS5s(`$dm@4NE<@_PG{^Gn3PpQ|l=zt#HvT#KKl-ruh}{8Qh~>h;mN#_<&uw>IBi zZo9Me)uo&1^?xQbPd$F&aq|A(m*&s;)_S(wcVGJFE7fMc(syhg&pW&Mo#dWx^A0xZ zem}GS{XJKHyB$flw@Giyi!J~ESGxZ9?dW%VzdzHB&YRdD{eI{3X=i7f=iMr~e7Ai4 z?$770Zoj+j)3oSmd3Sa^SvFhjUd7`-rLWnpt)0C)@9x&u*UrXm&%3s()c9rL<6h(I z>z5zznVmOlXX4>A(fM=tW?sJY``zsS9}at$y^Y$Ie*Tkf^%41=JKOVrKJM4AfA&(e z|9!kk@v$A>>P}1-kSqRj(fxCv+#bzk<|d{O-(QyTPJR{YR#1FC@^n(T$5#&hckADL zEmJ<ld+9~!p|f-Ae8c=F?2q}klI@z5>9O)<YU-EQ>{pOwWMBwjQ!$LUdf3u0U-hDs zUAE-YiHXPe{&{+On(pqm+ivUaeR3%O|9<_swa2a>pHuW_`~I)J|K``dSGWK3=*q_B ze!JiN)=r;in);@^{=-?}`yW?@uacj*ke%1A^oIApkCWy1Jy|4wW_I;K-qq`NJ$-gE z`rXW}rLXU}%gx-M{(VvH?{(G%2}c{5SATmOy*>Z_+27yqZ>;|x+i$xq^ZmWEyUX*d zzFgd0{%+6fiSF;JUM#fUmcRe+!uGto`)VI=%Qd(A@n9CaT*TJ{%-Zr52|t<nb!tC2 zR>i2xd&|`ne7v^y(Z<@}kKE;U=3QU6^i=GX<oEZU{{F6C|ETlnd7I5O_me+AKfgQa z`nuRZbE4J1eU<n-|KGv4J>}l<8c*bvF68?<o!Bp&dFm^-V9gAd(ld8$D=!xG)qZXN z5T3UybhfxFN2J#ItC}B#j?K}HXZ`ql=jziU=|-OSiq85?Ex0zxKln`b{OfxrcfOGC zU|?X-nDF-Y_WOm$WrdIT|DRpH|M%tfm1k%C|99WN;;6Qtl;tO5{raD$M71q6k1p=F ztGXUro_l9U;mb=)jnmKB{QvXW{?nxC6AsQ`KY1a3-xJmP(j$WRe>@W3|Nrm%`DM2< zpU){ixAXbGPg^eU`?Y!g+^Vyt;&GKv``7PyWdHn}ZT;I@ANlQe6x`n@J-_PJw&nA7 z{q9sZv;X(wK_l~QewiCv>i^IE{r$e4{Pwr^>t8oAzbZW4$ZT%^?}u)`eck6qW@&zz z8yo8X_x}F2_U7*LulH<Me|r<TG5vf|k$9EOw;P|B*{9imz0#FFKlbC9%ih!C%I{e| zpY!vAGylipjP9^~>sgu-7PB)j7^J-0`FvjH^w_dr)A#?Gxo_Y3eP7qkuRJU*RsTsn zzUK4n{~vqvZC-w_|KHNgC-s@VzTon&uXFD9*j9gw`SMu4{@GG}+rWQQ-#mW#Sh0Oh z#fO7WoafuUSkS-sU8%Zk^&8RYabDf;?(8f+-Y2`n@rf{~q}!Bo(p5aR<XU8U-RtOh z>(^`E_ey`?{PneZZgs)Md$HQ{>XP0TpI=k=?q=wDyS<-gs!zB7eB{$|`S^cV9&7*j z*ixla|Lf#bfBT)UUaDWW`TNA`*N-c~=Fkz^k7tZe&#%t=x%s@_-90~FX|MZn(Er@O zZ#!16tNHP;{b$c@R=LYUueMGy{HDrVXUZzY%)qdqR&Vc*NB#T0ZCxTYzy9m${ol52 z|NBAz-=p2Nwehx}PU!D@={vvvZMJ{KQ*C$onh*9e#XjD<|Gm4rTi@>aoc+~TSKC#8 zI5^+(&4%;)-lQH6o<DtW&X@Op&b>Iy_gjXQ-}1@g_4R+R@B4A|cHZvZY?CF9Tdqyh zjlQ-f(zx)^)#T%Ge<sWSe=+<2x2@}Izs^7Rr@#L1#roRMYvljFUSIcd{bjZP*SB=0 z_w9aj|GeGj`R9N2AB#*kIdc5}uTSUe|E*oU?$^cs`afSiC!d>T_;~pji|=>d|9hf- zfA_0Z#m9Pg7aVMAw0^ha??iXGhezAkY?hf``F?m(N?ko@s6OM|-tYH*zdc{`>`61f z-OHu=e^1T-d-LUS+3$xR_x*mpeNXC{)$z5DwBrg7Eo}dH_aOWKFYfk_-h@Ti)c@oB z|GB>I)l>cdGL@HB$J_pzy8h3b)A9di-v23^Xx1)Qb;yyuHtop?|2<E2FR$CV?Ctz5 zvT+X#*G~FTDg6DYBm)D(0^hpbsi(!CybrJc7rOpey}Rt!z5Mk%3V%FQ-}~pOilKU+ z%+Hg`eHp*?o$eQXKD)Tz_FMA$%Cjf)t1h3+uX)T_|ABpR{MS|I_q<7+Z~5iIdAXt! zA65L>Wxrhf|Ly)cyU%Cb<!h&8?_!6Ht8uQ|`DW9_cA26}itRm>Z?mQIE4zR6UGk1A zI^@Xy_pJ2&9eHn~{Ia@1qwxO={(SuZy>z{>+~-}_d+VNRw;um<?tRU(rTVI~f8J4S zpHp+eQQrQ^1n&Be-QWIM957(&XJlYt&^q|{`~Cmt^Xq?mD!bS9eR-OyuiW|bj3c}3 z_i5X8qPBDxw;lNQ_V)h&XY>EP&5p0W^g7<(toYRIdtZK<@1JRR>G6{5d*8Jj=2M>f z^Y>xC-M>z0?_A(5AXoh3Vf$x6(0oi=r)~AOKX0B)zPjFX^4XfCBOSv1*6;eP-#vJ# z`1yh}e{JoV8UA}eO;z9fkT<^O_U(N|R|4a!|NnmZaq9Pd-=CQ8d05=uwO{Y&#qd2z zKR-Q<xxo7XJR`I~%SYDy-TN!n*Y`dWwg3H)zx>^ulftr(?p444dwcu7(l6d|pLX8= zy?64z5B&Z=7u!pHK3@N)^)UbcKeO-G99kV;d&oPk=#nG*-}m-^FY}!Wz6hBYS+ybU z=cmW<AG`YZzVyAU?yvX4J#?A>{Cnm_Pu$&me!Ms_vA+7l!FqSU;v0#__kUTsIR4wF z^ZWihJuYAKA>F;t=I!hF=Wk9igTr>!p=G<@S$)j^Uv~G_)}w#-yj>T&TW`;UrpBGc zFE=Kfn^PzrUvn;VdF{g+$?kifsLI>^c<`9t%HvPf6?VG=H>a|LM%oxcT4k-v*7Vn1 zzQ?zz`un@z?{>d$ivRy>ecbn5{{1pPcdoGC6Tt}{erHI?+xc{wzD)g}^L3wu?bg|R z0MDF7T$vyJs2S=chwYGPN6<<(&tAOyxe>Jdh=GCG@=Ql^zwNYsP|PvxVlR>aCq#x_ zLKQx;H(6FO{{PR&z_1|pfnjM&*#+@~1t5<$EWAAH_=*2*EPEN=FHQLI;J-S9hU~tD z%ol{WyfL(SB~);fZJ|FmNb1E*{c~}<PQ5BPejrxxi^PW+R!;N9?s*^laM3t^&fb!# zS0DB@?pAtX2r}MIchB^uhl|tqSyaE&T76iSx!m<a@`2=69JNsu`m##Re``U@S`<9p zZ!He4y|sAC)#_*6o2ReaWOc`|Ae_av?Zb@n{l9H%uJnA<Z{SVumn!|nW_LnCZMiGV zIlc>JYgvSE+$^?fV}C2<xVv=jLUcop1-i>#U3fkDgj2<SY2#LBzR+(H)z7-h{145k zXY^mP`NHzn@0ZkgOxEn>F_B`<O7VREeXbEhMbDp2TjJd<<3kSr{TlXl^_r>Y{ofQD z@-FXLs4l$gsi?E|dDZR}&p8~vU%2>Q`)N$F;q-WQy^Acm_orGpA&i}He96<+CZFUr zH{SpLy3r$)?Lk$8+~xgq#I1OIF7H>$@N<~&qY*sMIoTn!uup4AVBOS)>l-YMyq|UC zWqG;J3OO0UBN%>phT$`9&F9@&JNDmORX26(rjqRQt!%m6k<}%SE=zosVSFLi^-;po zBKl8zm&2dqURI0pn0j=CElVDkDaB1X8CbjMpYV#a)@ycm%@j>f@{8efaY;O%>#QVo z%CjtNZAMNy>mQz6_P>!EC%X7Mo_XF1iZ!$5xvk|nPC2*!O|%PHf7jx7?InhsMIwCP zFIaFrEZ-n(!<BkV_(^1!DTkm;Mu*+bP?M9ER!K!Jclu4%PC6{HXr0=x^R=H{#sAdb zxA*f~HJw}K%CU2|*2@$hUAq6?4%c9<+Nr9~XI(f{EZ94DTA6I^tzX63^XJVw(N!%g zblz#gznB}%2R5Hmer3sY!B*s%;j^Sg(ku5p+tVRq^eRoasKSZ=Y;25q`EM72>hPd) zX4fK7JNB+#MVEq8Gu9Lf7uIU16`jAotTk<A$eBy_oqz7ki@D13Ys-f?sm>c~o|etM zv8vg6@6Q*<a=BaUJuDwxc(7-aQ>T&lPmj1|F4^5ZtA)elE#n`CuPj`ylqKW%<m!?C z_33~2&zHEN&mv`UoHIn)aQ*%m4JD_A|IV)X66$v2%(EkQ;)ix$`f=I4<7lSJzloel zZu~#)I2C^M|F-$ToSx^4yzc&qSu{_X;jVMz`r{vtE<5(JL+V4U@BQm{WOk|CWoi5` z<;HTcTy_6)`HSWuJ9q7hf3dr*xj64#L%Qg{pUaO=6nwYr#JicipnQ|ds43F9)+#&R z|M=Ai6U892$4@<STHL0bmwH@2`G?@lwUa6}#7?gddi+i43y+YXY2Sjat54R5%r|Vl zv+d3Qmr40g6cQgxZNKy7iRI4Fb6j8Z-IlI5QYxI`{ib-~`Kve2)f?~d?zq|Wd5NRn zob&M$3uD!r=FIt5Z`=<~?glk-&hlq-6=qD{ColNYLr-?+;Y$~1XudK#?Oa%Xex(;b zPo9dcpZl5m_L&{C7kh-SEHwL)`Eaj^{H+<iMIY3B|3~nCEXy-BlP{enamu4vIQ3Z4 z|9}?_m!}0J+UA%<Bv1L3lFF5_(2noIgb9c5XvsyZE^M%R{$=xtm7l8I1gcF>KAf@H z_}_i?NshV3offjsVhWEX?+FVG`K6_NiSy=`FEKCTf0^tSl-vH?@YRI}ZcU+;|MQ;- zf-_0m)#Q?vwnvkET#oQM-I;i`x2dow>BR}zX?(|f9x?E8TAr~pul?qG?*6iqibsVv zC+U=ni*A~DXI|PINVqrM*k^h!@2ucI%lQ2G>(x6?DzRVuZL9oTxP9f)5_#LF9v*(n z4hV9m-&nF=>h<JH&vUvhCPk|nY!*Bc=gai5e%Bu-kH7o<1D17N3|9|dkz}k`DAmPj znm_G<{+59MX&@iuq!mZi=q=hRbF28lRUf~k38Lrg#qu_tDoS(hIhI$a7kFN<;oZVw zIb}UH*B7D}OIqHaW%^j0uhq`{YTDY#mRD|NFYmgsTS$L_$NzB6xhw6;+AN<hn>Wki zlx@9nrag1owVt!fI|C-pnfJ~@8k8NltT;G(zt8d)o>fz*_HVsOd`0K~?_ZbLSY5AK z`=MvD&+hp@gScV})A)J6o?rebTr$ykw&3rW9Q}*8?b+`e3pKCVAyv?RWplx?XFFFk zN-Tdbx6{Seoncpd-#)ou+p1SxOMg%Men0!IGq{47P#D*jc{FKOl@F)O`<kC$E`?qT zF7M%a^+CpQZNu>p+0XH@o#AuanLufr_3-fz^@WF$gT7oUKDmhRyx<kChlcI@|NgDH z(z9+i1FZN@_<>d%RoE`;0~P2&1~p&Kh^Onvrk3tVez1<Cswbj<p?>WJ?+<ZYZT$a0 zYZDzfzV)YVd0<%c9ki5}L1R)yzhM4)UT~%FP}=c*27m1f=Ro`C+z=7VEzb-qY{6?= zuQGxw^@coFa_GaS66)jQ|0~F+2ux;n&|TScoX5niCxhn(v#D5M@2(EtBffqvmn>@U z=zPDX5L^_+;&CUkU@_x@j3cG5;(lkniFv?!SHoh}i5=%|?_)k9^6XCTlgQ^bs~Ifs zGQ2R;`clOc+w&@DQMOn7WRcH${>46)MN9sN7DrBh<ltQXaea8P%B?MRvcJzxYG-I* zk~k;rYBw=6Gl@&s^4SEo9p#Nx!HWG4rOz}}yQ=2-pHqyl$ZL}6UVW?oL&QV(5aGZ_ zF-IN+ENsei*ZOWeSGjmbMgqU@THzwG!hS}E$P=eG{E=pr*U)f`U%g0__iy$M`ykn0 z!s|J1&Uy3O!OC4x`q4dBhQMvd?@Vr-H8s4Y+OT7GtCQQ^+1*mR#nnT*H~JP`{+YG; zI8)%o=l`$w1Rwr8XU6plo&hVIH}a|9{J$%>!1C{6;~mZ!ft>Ya3@<W&oW9$r9<(B| zaN^XO#Q}FkS54*!k}7{}B4;HV8c??3^v7RThgw&za_DoDd3298i={rXRf4VmVW2?a z%pKFGH>zp8i!pxoOYr(UN4GC$9F*^ReSOFrsr_I3<dHpjEm3{eyH0cec^xJnG);5L z4qMHGYlD)_9Utg2IphoPQ4e|NCK%<rb&Ii@ZmsKX*((+j4{Kakc=d8l?5P%C!5#a= z@Ke<1d<Ch}ix%RGt6eog1+>^MYt?n>u}=SsOzws)I)7%rm+;AZimInqM{T(lIMu;e z&DT|^mSKhP+UlNtGR)z<JCAYg3{+XTM5o{L$!<Z@bNw2ZEVF!GIRBdNZxX9_alX!- z-45cHP34@!TlQQza`o`_IhBRM$Im={p`z(>VDAwr-s*CxH~B9XRx6&eu`_!5Na~xE z_K`i&D?jY&6j`;U`{cXsx25Z@7pzL@`u@t0!E|wG|H5v!IGvh<oTqjN?pWda=k!c* z@7RlZ>~goA0*?#s*P5_+Bkx(CT`@|}_6Bvn_302<b!0Dh$W*<L65lsHTJ6OvQM<C^ zw3>v$Ri?|1iCsd|W#YTICaUz!ah<y?Zk6hU9PwbrVxR3k?;g(KS8o+(UGP2gZ1Rg+ zhT<JNvQF&^EQoNlb<ujR(w5bEMAWzaUFPbIma4_+9wDs7B6-d;Rr)SHWzxSY<Z-QA zRs8r~ZXV;<M~0&9>+UJ(1!ldztIxPXc5Nk3hUlH$4&N_p_Dh;(h1A+E+k9Q8^zs8g zhF5$x%K{4CGub*Uw`r4Ec5MA|28J$BK0X0zp|8;UAi>~Z2O>&A6RV#<#42tZHiilO zHf#(5u@4Lx8frkqD^Sz>38=*!0$MkrAYZ}5uwWOc+wrsHRC3l|y9$PeriSAT44+<3 zIez8$dm${=%>6PWxzDn#e^ch|<a^TW>C6mOO<}fe`7CE2<S;mVzw9e_cyUfaHPeFQ z8HbZArts#8FnkgEFk_p<oA=s}`tLF`)a<&QT(Fp7K}FUB!*lm1`TsMlES~Pk|LNdc z&W0e3^I$pamrIVz)E%k*p)q@sZCjr5JKM|!6L;8WM(w@(;2VpB=9I^VI|3Ol>@B&J z?6&tWhux`VG5wr(T~pS?|5+ZM-0=LR{MYzI<zIf*zTr3iTP=>Bbyh-gxpOZggY0sV ze$LqQMs3op3|E&=mMcE9V*BSnv!zu%J610Fx7+JprbX5}qmzysf}F~AOLrf7%h~Wq z^Kf$0^xYhf+!!6iF9h~mF6-~#q<K5}lDVLH#<5PvT@#f4%#ZwJzvU7qLj#k>$>dAZ zH%ps5KB5roA-K=?fg7WPXUVnXRo{yDeYx+la(72{y5Zv^3WeVnI$u_w!N8!=W@N)= z&c(26reD>Whwbv`+;2{KZTRWfqdo7m>uS#L-8^ICiOHEVhR21LyZBtV(aFHjwOFKo z;&szJ5rz`=xnE{v{kyky$3lr0(;nZ8oU`#)rtR;?)qawqD<c=JzbL@D!<I3C>uCi~ zqckf+tXH~inuvUA@V?^=47;XZvSDMmu(ae_a#yXb8rwNGhA%9+6+S$3co|;Q?K+ms zz+k#0w4agT3NIp+fRf5pP{o0q@aBG+5xCgxU@`-PESnrN!-?g=a>Z{p9zO&Zz?w*3 zO7;Idzxnsa1I+z#wI537Eeh@T+;Wte-=^x>LGjA2yiXExj0{!XVebQW1TqAedwrU* zxZiG8|0c;r#{(=G7ECt?FBhobVc5&g?PwALO4lJG#ii_x#~ChEZxC>CRt04TS3_h) zK~2Xyz8`Ep&cG0LH0G}314D){ayl#*13Wq9l>g}+goOQy+hJmBE6yxk>>hEi_LUQ# zzRlOW=K?4FiR3o*UwV_(J>IK*<5~uW${DMzPYBqiEjTE?cH#Q^oMt<oBBtceQp_?! z0XHm{DKEb;zxc!DODStY1(LR2yOvq@Zz9jP?^~}gf9rI?7VJLNN}rwUkMCHeDC&I6 z)kHCP<C3)2tuI)`=2c~Rdq166FU9c1?%69oBbWY*JF1Jb=8H)$zxRs$_wT#D^NV^} zI!vNH-6dz|u48|)CY0roj&$!D<E>BX>Y^6By|qw>YZt#*Q^txV&ux!=@6m|*GGkE< zvmEoQzMZ?8r#v*YtX`3<ZIbil^8YDSDcL^%rp3IgTYJvvd5r1K`SZmxc5l0Lo?9X> zf}`eGkL2OSA|XM{{Tr1YA93~h@GjW@s-vm5yy>pCL~$<@b(b#rqM}V=i<J9{7w(^6 zd#OEd(OcsxldaR!mx&vxb2)5JUiVHRwW6mZ<?W(lj8__rrk<G5IOpN&OFmz}@)sCf zHQN%l!g;ad#*1GZ^$+*{j5+kvEPRoF+<$Gu*fTTivRs%YedgDH$oy8k(ue!&!&eT5 zhiA@mS-AGG)4Z?OSnslPH!^$nH1*f6STaw}nfcz^r|<H&9+2Ph<oqU=jOK#L&D<|n z%r)P!HErR82$9z-CKtTSn9Su64sz4d3Z8?~%kJsuPSI^<=8a7GcX6ekx%G1Mh>M}; zqlB_stqV@*rL^t*skepC{p|_u?T=jowhKFN-81=tov-mszs-+7q&p@RHMN>tIDhY( zz`-lK7MxB{ys+U=hQ%ufRnw0Wn?Igz<m8Ca_25w{Int6AyJVGz_C-ryu}{ZMQi?9W zxxsmAsV=7}(*kS5@bU?pY}}Msm3JBjS+!nq&t<vBozm(0q~dRBEZ63+$$ZNgUprqG z<^84-DmdSL(M~D$=5srKdZv9ZyteIvig2_?V5Pt*mb+}+jV(`IUvc*bX*sK!evsIB ze0I2fip{;`oV6=I&i?)4%Zb)Gg_B#GlGQU#Gro{Lb5(XpNI&Phog$O&r#&=~?UJ8- zQI?4{@Be`<jn8M52z)MCVE3soZ(myzXUNpqImZqzFwWbQkvG3&ZSRcbSNBX<^hsd~ z=Pq6`CQqjrp>{4U&6CMq|MzB>UpKejlg)5V>eIgUDQ!ynrmJ^+38~GPbSKP`+cH_0 zTVG|-A03y|B~86d7mR1Dw)T*eGrq8%|LD1yw<KII{M^SoRa*VQVHa!ZkL5{@32PJB z)g3w?Esy^c{)O4aD9!JvrTXoYXZiYaSE*_1%9@-H5uS1K)iVF9^GXebOC)tzCT-cu zv;6p!e^osP@7|f)8^3%>-MQ;CMII@9Z5FT(nC)}<MO;g1?~2wrg;k2NtEyhvDZBOa zeci~*QX|DsV*czEUr^8Sh?Fax643=7Zw@Qn_7%P?B`BVKa{jKXjQtm)7V@3@rn7wZ z+8H;_T~-WSGHXU~hKY~Z@kw{*6y94@Hs@~p#N`XBE%yt{>22v|yY}h$g4qd*9c^A! zmy)9nRxVu};T6r%5O*-<uA|ixLxu*fgH8gxQ?J}jK5|;-T({KGz*|lXUwEFq;$!M( zT<{&N^VLhkrM3KQ_unuss6BI4mPL-);XOpx<zxni*oK|Enhzv1ys(YnShR4`y^j(M z4(~4(_D^hLVOXJ5(t7U-R|?;=OCa+Yc#J<tFuY=pU6`X$IKgs;w>5_i8-u}_1IY|4 z_)A(hEj;4*EJ5$B!UqY40|w0fj0@~8h@NT_VxQT(b4zo{`r{|I`%Zela*5=rYNeBT zQtPwXFQ}{CyR7+$NBJ_t3(>C65}&V4YAc`rOZoj?RZ+9^zo$BLSsyQXBJ!)4uP#dB z`E(h}@bJ!=%bsowxGYxRZuIPla>nn-k}oftvz)>;q`hRo?!0tW?(+5LdtZJRuywo6 zwe;nhlSk&<2=J3@c(=@=|Kg6@#aXMxs+Zq;D?YC(YuX8q?*>y#rfj@#7R-3__$}7; zH?}#Xh<62V$(Nnidwb#A%L-f-Tnoe(YER)+<uhV0&SZZ%<#>;jX%=L^-^~@zC%CSb zQ~p;q`|jWNMNE0Q$EPYSOFS;lx*%I3t^edrH`(Zg4_^eotoL%*WV-C+IvpLgFG8NT zt1HtMS{<Due07KHEj!*tpZyuXs33*k+)olkGai1J;aL8^yzSh4ri=P(Pu#5g_bt#% z@=)#^yH&k&lq)AK3}`gIwzVi!bjxOwB$wpsCH#|pJ9eluIea%fBd4qsDZTO{gXsbv zRmHRgXIv7O-K%}IRK{nU=t;%ijp?aul5_o^<~N>H>B^WC`*r5)dR4z-Id!WO3BR61 z+X-Kdxz^StdG3k|SFWu1r#0L4Uf8|hN_FmRK65bUmgBB_$wq8d*SFheD>Yqn>k&05 z3QJ7)aW<TyJabu6T>9L!<4VD$le8wC3)%6r(s$8(4u-qO3#xezRxi7!4=O09_f2zs zCO`L8$>!p!e$m*kYnqhm9Fl)6VXsTyx=vzN;EKhuCt@%8nmu+2n7>D2*|ZK@VPn5~ zE*>@Y2oL6WufIUb$puJJ!q`92dE@NY9XCF`eRpnh-ahlNmaL@>5qDHoD(9}e<{iTB zr^Y+;%9Ptno`QlWkg<Pa$6uqZ=HP--mo<zRT2Rh)d!imbVTP7%#wE+C?~~78h~Avp zeqqO4<HGFV^V8L4-f-$V)f}Mq!VD=estzSr9F{-zEnoSX!yh}L?H7F7t#0f2U6}jy zoSOb(&(r=a4eu6f$qC;n(^T1i`B0*jh`rikYZk6M|6aayXgm_~(sA;+l{NfaY5{9! zm2vdmww(MXN_t^nj-u;RM-AZ;X{1!K_n~3dY4wnnWncc~hbq+n=0DeES2s`iV~mS_ z`tzeF{BAFhc~Sp#j=icu@@<u0oeURhc{U%9saj<xGCMshU&QfwyWxsE8I1C3w{CXq zmo(ng*sE3_e^Pdd^=t>L`-+mr&mYd2kSm|_8d@&;)Os-+N8bIi^44a)v?jggbpd8m zEKbOrSt`3E+~(M2R=Wu-+y8v|_TF_(><znbzrA|dj^8lg;3{5``1?h|i{~|^@fUkO zTgI+G<Qr9|#84u?w7SRDZEnX`Zto;*v733bW?bvo5t02Rqp$VXPt`j&=PZ<Lv3~t| zL$cIMmSbmwE7TT9*jimVs9SnWcfO}mBSx8s9RG3sl41{d8A|3ovSnik5Jiff2Zp+g z{frAfqnA)~Kh5}bpFKaK;W)#E$_IuFSJ-zs-3)l7P;4;0Y=U29&yU?Krl6MJ^Ty*0 z0rE%&?mCnFM4gf0f;Fhxsg`4ASYZS%3j;VoU8F#G@d_&Sn5Tl;xuWn!A|8cbmK@)a z-=uP1-*ey5Angy;`kGNI#8yAu^Iz!RT+RkDgYfbRe3d<)`=)K&UnueYbmx?#C%zxu z@_wPDue2&di6z8j&;Dwk-H!q$6!0uQ?y%6|d*Zrx3bG$0UK)J6yPf^_@3R*D9Q}fG zOCR6Z#=ua)bGUk2Md6aC;YlJNBpBM{i%Z!hHyz)x?xK*OT=VzIObc{xfWl+Jq<ddy z1P4oR|2tVG#eClrmGYlo)~&Dhnq#?sWv~YO^iNC9@v{Znrp)@ItW)x0>W512PpAI| zFYRz!%5Z@f)VK|>RdY{%^4f&!`&Frbm(#zUU$k>(XV|0NUi(g3WC>@eroZfXtaW}0 zOS-WiXG2~axR}*?8QL%SBYNANyIcJ_1X)Ykj6*D>_fKUmU*UF0VU0gWh97InKB-$e z>KU_V2pLXMHcWSp>+Cbv_Mf|IGMmHn1hBtne7L4B(z4d2qsfqy&#SWFi_=z#j3u)+ zre+*0T&i-z%l+-1aG_bg-x(L|P6QQgjb2q(ldoh;oI95rzhy$l*}0d#$j!g==<@D; z(if922A3MlFj>zmdt%QTHNKjpm0Q*n=IoSaSzry0nhKumhJJbVNC9?{E%O$9b$ZpT zdd27I3CZPJcTe#(9lVgUgP-9pFSv#ZxwKo(x!UY+wvF-w86~&MSIX@(zN~xi_Qm4D z<t00Rs;$4OCiwV9kvWG$ImjQ*UnN#bFn<4VScPM!obVKJ{<%}%%dhKL(!B6yfjq-5 zX>gugv1GZe+uKhzOA@lwmuG%#)_BQlxA*mKLF2Mp#%ZS_&#iLX&^h@e%jHeSCO*v* zXn1!Z=B{Jg8^faS<?(J0<8_1r`J#e1Itp&Cnz)dk`LC7ErPRK_-Zf#%CeNN}Kl>fC zL-}Dya{jX8_zGq_A-jba^%Fa89yu+^BxrUbYkPXqnG<GdUOZ3EznZ04eobE8Uq?AN z<EhCdPKFZpXRr7!G4?AiVKO+zl5=4q^Fm%Nkw2F4;T;@veGBdsPIS;tzt(q|x!&h+ z3X*@+ZI`iTl<TLZm!~o@T;Ky4BH1q)*TPo$>$2M1SIh?rpia7SJ6Vja&SaVMfn){= zEs#29IpsM2mq$)(fRt^3DZ7?@#XPwy7}N)K24%=y*OHC)i(gfm`-<72H31U;S+5Nl z8dibY^|2t94<rK!fx4}WW~>IabsFw9LlUUw!DP2yDb{{QhAlm?<`YEuBq5tN8BqT< zLlWMP1htDC(0Y>4#4uUzaQ@F_FOKB%R`Nzy?3euL9ccObarrEU6Ne#@^egs>%G{r= z@*lNbUWqT5TfRE^&Qq_Ss+rYB3?;nKe80Y`=Ogn<g_*AeGlf_=j~i5-G0@|6&;f-8 zXTN6NZ2l@9_b9=hF#k;#)L9)KZh*MQ_PyaN*NHk4K}B3Fs3l)*yKL&xXxo!c^F<h1 zVF7m_S!UuwPB)p`%BFA6?^;q`D``2EdyeJTZ&gfpgM3dNTxzrObMwIv{+Vk3Lxg3k zR7-M-KEq0Y08fyy75x)Ang8S!_cH!IR=lp?;7_gQW#hYddMh$}*|tvodd~Xx$>dpA zSNt<;y#Cp_vnKs$O1jgzZ^f>UVi+a#pn+Od*>g-q#Ypt!g3TYJEeqPSRKz}M`)bcz z-)452^Oo8&7oMjcXKqdiU-bCwso>?WmM{i{f~*#nOE!plpd{RrKjUm%kMPe+oLi>< zU~cZ^SXof@(#G)FKC{DbANR0J6+J0QYWf*DxAe+P_Jj&(agg=Muq<1AyG~=*kC`VU zovW^wD_70=raJps=>q1N)2|+JeA0Sp)3J@99MzSy?w!Ki4-)qo-*k(mRr^~v+KaI* zFesWJA(696nb&Vt#NAUYz9*VpnwWims|uCJ+UDK5Da~v!2O1Ts6+S=TH$Tt6<fgwS z{es5Ux$J4YFJtfbzS#IS!5}kl-^uK)o<}UU-Qi^l097$dKFdv3$zFav`8B&q&}KE= zyEd|la}t7YdqjI%JzBfyxUY3}GDDj%v}|DM*ZlupNTn=q@5b31ZoCP;U72w0fmz6o ziF3S+U72lDLzQnFIhoRw8Tt4GsMrAwc1(EqT|!uR(E>NMC(pDm2_E9T6!E&vv_GZk z{vo|Jo=;X6`lRpYWjM?NO~k9^k_*bS69tUSs<zY}Z4GV>XGt^7bG~}<Yr~Nl6IUfI zJL2$f&AORI>3=uc2{wA1^^lIT1Z`giSB+K=4X0f&o457y?2QwcBJX7I{QWB7^u5@> z-H7FsZBCP*@I3XNc`ulkS1#DRdy6$&f(0~ssxBpKb!ZDSG-#Z;Dw}cwR29oW@&l*M zGMNX47&%j@!pHJJG6PZh5^W#|l3_p%0#N8c#)}|+CtBg9$#ReX6-}rK-%)n|t?!;l znR}Xi4T*<9nf!&}x4(}~YM0NQR#SfG+lIA2_r9{~uZXwaQ!M+!5t;$yzRytnyUSQJ z;KAP7)y#F%rN3A}M|Dbmt<7mo%&3)o^IlwePqZGxMrfki`^NCm(iw_-W+|CGyVCkf zxqTI@4I5ZnP+&jjm*(RP0^AT!T-q&HoRu|w`u(Iy6Yl<)Bpkq`Yrr}2qVF75myLgJ zdv2P)y-P)MVt4E*M?2BZSoH`eZm$$6SCcAPhAN)oQg+P)$!8+?*nZ>-nX<i^ufEAH z>3>q-quK5uud})>Qc@P#KHIe{yOJ~R!kjF7bKm*%<`ny}H)KHzm@li2bNu-myQ<++ zi?@3>xU#=8!LwkO?8<Xm!L!=Bx)<cmjZl>-^!~a<V)Z>q)ik5IY!3RM{Ki_{GmR-- z<M=7NIjb7mR$kxWl5wzblCIhdod-NmZ>(9mc+p1B(yW}MA{GDEXr_Q#Xh_C=mH67! zzWMC!a0`_~EE>Mtj;GjTDg~EnUF?nOEvQl2>s1kZS=FRZx3HPvivp-Ozv1|j=5sgp zq%FE|=#gUalb+j-a)yQ3KcAL7_|7x+!lk%YTZRRXV1fSHaLd8V`*jr7^+ZgWwxVAq z$z^H(ny*35b`#@NH>{g1FLQj_4o8M60Z@A@ub=Z&cl)^_s~b*_rOsaa)U?dbV)gN5 z+of3+NJHzSs$0oZgg#7YTA3SP;rYUR(xkS8GfpOfU5ZX~o}?`g=XAUC=ZnRrBfLx( znnA6tf~p>g8!L`G?C0ZtKEcwD-PmOE!+-B)uvul99GlHMT_X0-_o)uz2a&7uNv{sR zxNdzU=h4>w2?`PuC$csjIsfz4moHi;J7&)}?9*O2(T`yPJ7|C@@vDRwi<>61v!#^m z^9dGLQfqtNwAUXG*rrn){cPIhfTsDMS?{t!l2lL=sGGbhr9YD~sL{;yz$#vb1p=TV z*;y{QHYPYz_O}opLo5Sa@r1)6SCdb;o;fX}s}#qbxm}Dwpc!1TCJC%R{otv@1zTtU zZ~ZFqb?)piUzMMK<ro|a!S%A*>@)dQi~)tv7`|1-!?55LsDYkq!`2`L^KIX828JsB z3Lb{7O^`|)Howsj1yyn&nSlW`EbXus8v3xwjs;;*+il+%p7VdR{qx~}yWIB96_MR} zkZ;j1?kDR-MYeD;-1VF&r@VgemHf{qq}%tfdGC-o`?j@T_(I8(eCfcn&Bc8FFAqg* z`t)?Uui$O{yv$QcxAr<u`|w}+1+?7q?62zCv+NCT!iN3(f1XvS2<*((_~iCTxV*FL z^Od)Y{e&8-0yiB0BKWU#)wZ)m+ibso6WWs;VDRaiuulKNtA_&WtiMMqC1u`Ge9aCC zS5TQ#_x8B(o)ujCthd~iYp4p?a(u>qz5@YkE^55qRI>j6gS`%OeDBQFiI8(%-TLy+ zw|CoJj$F#M*S)Y6>fyaF3@xWm{qvr!(@P+{^Uq<``oGs@!i`_OTG-#SXUZLKtqUCw zi+X4IEt7UxRzKHj^$V@%`b$nkT0Pnk&EdcwwB`7T(|2N~mYiJKQM~h`>$DwhN2ly5 zJ)vx!S+#WC&lJAWgkQgotG$=#u{5t#d&wRD-RGXtlk$VP>Y|tba~N?yU1PjV@bKF^ zCY}4IxPQ|0X7b)WvokEIw%+zR%cgm*pM+Drnl?)=XKCYv)^+Z-YJZl#h+$ynwOrI8 zyea<Rzw5O|8v9=PUQyp4z!ThB!~62|^|uEcXC^kwZ2ipeMdxUB&yRL}m3^fJcXmo# zp1x<tpAwgzTz1iIzM>0dZrdB0&CpwPM^erGpRQ6RQ`L&)pSW4yMLfLrEBK1i#M3uI z|16)gyF{_vW4(&W?03v<yl`i<?boUOQFNh0<nvcwmg5T(HrV?btvqyKmu5=eoWd|e z?b~^N(fK?M`9V#`XJq&G?ajX6>k+s8+|}pji-ap(U-$ILZ0|HTdvPRTnO&~_3*Hjl z<*s7ClBJAZnsolZqH}P$OiWaYRm-fEGM0}+mPS`DpU&5ocDVMy253tDvgr5;{htT6 z3UIXVTeBB(V#~8x1zg5{>W$}$!VI;a&*x{@>n$m_SZ^C+@zJGv+YhL|iK+dk<2!@d zaB<oFg1*Z~q@{f}2Q0J6j!hKGSvISDQxf-HA3Mh2$ICQxCbi2iGb$8_v0CiNH1{c1 z2P`>$V!d1V>!0j*U9bFC;;oIWew+{x6QHKWaYlvfZ_Qzc{d}{%f;CoM2^J`Rxb5LO zhA%uzD|&X_y3>5*>9k!>_OA99`Fz(+r7GHpH6_kK{o;{$M~8!Re55{<{18*TmS^(o z%+Dv{w=PfmY?PsOWXZ}<X7-8evpJvFop!u^n{Dn=SA(k|mu6b0R88Pm_PZew+H8Lr z*su6xx=Qjsqq_@!oGRVF=IQieBk&<Cdl*XMpKq6+llQWecUym-_39TVpZITNJ;&Z~ zZ;493;Pe$cjeKnicN!X<-~a0k>$>L75~aD1%^!9>`RgdVd*-<r*)J?Ax+i$wYWvx0 z_Tta6X?B^_>BYaTZ=^rB*?%DTT*NJ1|2j4knQ}jc3#V*tjs5ul81ha=im!FYzX&~2 z`mUG9kmWQ{j=8GU@2+Cu^0f@`77e$+|E&%GJs7sK$T82lw9;DT-ImY>SUDCl?M!$S z;|l%{5)&Mkznie*au_!xC9;5;MWA`zENHn5Zm)nQZ7D4T7k*xU>1Da~q!;o&%M-rk z-@3^)Q!nb#^-l~M{YtiOarai<5144qS2=Tf!QR!@K9gN9ZQqnN;rq{%yVh^}7*mvg zv2Ee~)!sk$OS>F^Rz@q1pXfe%Z^4`2DX;Z|Kf11ewpm~3qRaOOd<+dinm3Yvas2-j z{yWj~_sqS#srNb#ZQt}txXLQmZhFu89`1KnZDDQE$#ReD0(bAY-Yl6OuOc{|pJ72j z*EfmZ(_KVFHord=Z}Lu8tz!4dT~kBnf4Q9bdnb#%v7Mmif@o-gUv)9rXubIJ?z?=& z>lkKvov}QbB>Gi8@8A4y3zYlXXEQN8(!7=Yi~Z%|ov{}}*D9S8J$rrQz6U==Sq)wJ zj<}ay`r`FudGQM7%h&C%_4w{}n6l$IU!&;Ln|uXxn$%qF+m~^^-282RT2YkQl%?NJ zu5d~35?pFC{YY7<QHjCh^9HI>onQZcog>V#Wzy!8)mt?=&!x=~dSL=d1D^d=K0mU3 zYStQm(<<0^hxtSJI=}M$7c4c5b0#b<lViAG2QJIjhl0zpdq+dpxk(kazV48?&8L+! zTg%CETYb`+ho3zsUp>29v~cCwUe5;-yiYyOybSm-`2l;5is{u~#et53-rt{GE}q!A zY^v|Mtfw}a)~DwCerKH94oPV*1N$GY-_G*u^c8P|_}w>8=toCBDB0k;togRqB3*_B zlByLwJLkN-vHQ&3mM6MLcOLi~nWvO5Wu>fqJoizrX=ADC+EU}kX`G+t=q_40S<FH* zeOg;j*N(rcy0+q6x3cbP6;y%C$5ofs?z!yE?!5V--Ga}Eis)0e<rmky{XgccKe=MP z$6dq!*|%~<uZl5D@RyWZyzV(;ap3ZGFAm6p?VV-7p5&Ih`k~D7PIEIBF|jSz&i2e! zWeF?3RFw8sq&H;W?Rdcz;y)6#gxQzz9v52uWZ~vHt4g%rf4Kx6t$ASs4Rrsio<By# zwYGnMdzH=kD{6UR{o_ZMCV1wFeitup47-`j$Z&DWBg0osW&A?nTXr%_+~JOalv~wn z@BM4C>{R>5#TEFxWXtwVKl0LKCMPTwGS~e*Ibl;ySM&<Ow~yy@_q&|==3_p!<XPNY zIhCfD2oKx7GHm%1mHfl|+}~Fw@$Vn4zWks**DAPXuBGgkluzl$cQjhFF>LYllv94k zUNh19;}OxbCv5&RZ7-LW^;shPQf5DA_>9d4EP1KEyIGI>3jf)9Waf@c7FnZz>W<TI z#{c&c$x52v9ee8c!dp*XO1|lQxuck=G3?#TnT1sk`ZH&|VYcFjHX?S*1xr1;<aNKA zfkAeGM?a(K;^6ODcRqKwK+;6xaURi!F9M3eD@m+em%qEZ<GDB&L@!f+X8)P%=8O!W zNvAe9u-tTLPNhak1nQB2)~W<(Lz{l{zDWEnbDbnsw<+e2L)E$UmjiDv{JUvxaokxc z-b!7DswPm`G-0K5%b&d>m0wMFDwZ&n`k#n6vNO?OuEp#tdzW5ap6Tyh_wLpYov9x> zSz}=xq}6i4M_i4zY<u*`{HgEy$4&E?7-HQH%3XH<AwFwIfVDEuS;6eg{!=@j+}<b6 z!u@!6tI^T5-t&$ACo(cval*o)GhHM1?&|nSTt7s<h%me`>iQ<}+3gq4QK{Zd>+HT8 zok!Ar+fJO}5wuLodSqyH>AZfsRq-J;kxQCB3uSmdKu2Ar?#k>HU&DOONiluxlbtJ# zKb{Wh;b&OE>RRpdU!m4SeC95#vs0hN6?MLj@ws{Wj^C`f&OarPM%S#3E6YEebJu@0 zZ?@#_?py!r{I>^O%&J^;FLQ;o%Ku4$KmJWKm43tgiV5QSORMFQ1Ew$Nxv@~HGyCX% zmpiMy<3o|gUS3XUo5kX^sx@b}jrrYa|3Vq_IUHg&?j_IB?p_~U`}L;dhqy$gq#WxN z8**21JiYO+vyjPHb=Hd|0lI%@$C%tTmd#l?N5KEUoh@@rqzVGkZYaQqXG<F)>Fi}_ zzh}+M-Ga7a(>r!W@Ti@A?Z9rNzq+&e#OJJ;2cks0)~6nO=ODUCl`%lu>w`qG?yGLy zQpsm`wI^-9<HF+W=GJ%nh_t#vaOBUbIT0pzKsLrGPu`pEC^$PW>#o|%gbcGg>{nP} z_2%QGOLuA}U(XVr9x{)&<(8GB*OH09H2N4<2&Y!`>^i}A#&p^)p5W>0t6SC5G7rgg zNN&B^UOY$bo<-x#Q>VUXy<PNh-pd5<r(%ESlt{_mE(v~Z<_Rg#^q>Wr={Jc=$zPRe zU2Iie@oOY~=lC4+Ef(lp#V`Lt#r%HH+yy&UO}6jhaPZYQntVlc=026P3eV#f9{Y7` z+jefZn0-q6GbU#|TAyGToY%K`(u=oOt-6<0FKa&O5%<$!e_x02hszlUma9C=xnNRg z{5kz{twSs{IaOUv*7>Bw5vQAV=EUh^KAnw!Dy@v4p8J(txzbSSs_*B8lD+RdS#DSP zy37q`aH!QdnS3NQXWhmJsT%8?TF(?OzcagmPwi4?N#FezZKm*Do}a}{y=TO4FcQ40 zdgZd3;I1`mi)Jr9@8z#ne=hv&Em&y+Pe+sGj7#pU&i=7*^T&583|HEeY}rKGCT#P& zv&HHvdkH_J*yXfQ^O$PWwl3ulJLd}R4>R&y_RPD~xjSt6uLeDM=Z$4$$MF^6iwb3% ze=+sHlzUTtPUwDj)<nOrjIr=6$H)L)p+-St2U`*I@pM(&wYuBxf0oqv9i33$f6{Vm zTCdh8>tF^Rb=Rt%JyOB@1(fTf-Qucz-?7bgxGPX3wz0hDQGN08zqSkcY~HW2p0U~I z;QZJNz0kC<_m$zZUmW*W-BNvhs>gXww`P7-zs#*DhA%9v)jskM<5NHN1zuXJe(jR^ z@(W+}@`S4DHtgRYF!5u)2XpV5*=c`jHD60wet-OJe#oE92EArzhN<lT_@31{RYTnW zmCdX<5_%yFT;FFrnXk8aM&<1PhYHt!yzn*do~^<^J;{2%muL9yb)WuyrC}0ucrELJ z;k%>CZCu5ss!q$o_}D6fwsW&x&UKyj=d;f_Q|TQonorhTJ+H4&o!x0)@^;Ef33-MK zzeU~}{%!tpF(&cVB$MegtM{tv6&a?kFSO3AQvGz<@=D{&*YerNmc=O*O$x8sw9#_% z#V-fLW*477QywN{dG8Qg^|YjWa)ni|B4>F#@K;V<H|f8~6Z?Cy=Fd$Ial<2i<<#RA z9~;|bIyKF&o}4(nOX`-6x<=cpNuJw9i>;O{RBN1IX}COck?!BsO!ovDq5}3Dx0o&( zzvS1Y&CL&b54jw<Q5KMRJ4Eo*#=pYJ;uGKIocD|RmFMiN?$1~JnfK3;N{wsY%Vya5 z9qxJdN+d;of9K||{$ei^9vfC$-C3&yS$*{<9&j~dEYXIfR8L<UH@Q>Xr=8+|C@s>L zI(DVX_k}}zpxTP#FSpg{3P*U)kJzx*JfO8^HNyhCDGv;vIb8{ldL?yccc4o8&Q6Y5 zkdB_8;_jK-#00%e0$0DNcAZ?)TVEB&$15pXxa`td&7|t(VqWW#3XC(~*t72MpI6pY z7ah#MO9WC<En$;O-goM9c;JIwMqBfQCqHNVYO%i4TkAZVQ|?>^)k_|=BF7o7v>DmB z#U?U8WAct|UYUJ;uZ{3#lSIBFJzx7vKs`P72W&snl`g+<sD1MIPK~e93jW-knJ-h8 z&A#2*`NgSm^TdjotJ*K0oNFp;<ln63<lV3iRw!5YFWmTZlUTB`qF{J~yx~^AO?&-> z<_6E~nf**b=&b6qu$@2C-mn}sz3cJEMv0+xfk=Pg^yFVvCe3rCTcuue-@YHrS@^bV zPlDf~&izb=7uG93V{wtUKd&$H`r=-tiur*pVnN&$<?4H9oicr0{q*3oJFaG5)Hw~` z*EIe3KK0JLXPPZxg1*i3t?ph{YshPbCj8KT!yn?4_H2{*m$m(*QGy=7;RO4tv}Jc9 z>*wUWUiR}s&#|4insWE5Ejp*kut06f6T?SRX5tYaq(r7KaC){g_?@f+yYNdFtK<2H zMDL~M?Y>bld3W!eve_ml%L~FTOYXWM$o<}C^4Z+U2hRW0x+8S^(rFRfH^Bm%S4J0J z%WMf_iG}vHE=`uZEI4WUwGU3|$?LNjvYaQ%F>7_z?_Pavt%L}4Hjt_R<RUL|{=e7R z^il%69~f>`uH4;x{0hALHrdrxPws1zre1PD@B_nAr3w^TW(M%0-7KhuRBKXcUP@*= z61{Tiz3HC+&h`9Zl{D1)VV?R#Gev*VvYDs$G>7~W@7VKMr1)F#bU(gC=?Ar&UhzTN z31BBoZ?aw1&yjmlFgl-IAp2#l^^W`O&8&j^!>o*#n=M*9LGEwngZ&{FrWn~9F9?CO z+`zMJyF}g^zLWnX2pXQs?k_Qa{NPy3vpiX-zFh0`o90Sg5QUbR;DQ<28~Yh|Y(b57 z<YxC>vzPuUo9vR-t@+cv{>j9-C2<iS;3dy~{l%|U-*IZBESZ0K?#?xrrG4ddyx*z+ zmwdo=vqed2>RhW@Va~q~Ro=Z$P&yZ~OI<mv{FQ6mt2uX*CZ2COA9n49x`(3id<*XY z=%75*&F>8#$=@^0-2J%W*84LKZ<_y!c?7E|9oyE-b$eM?K;PT>64EYH-9k@y$gT=} z_wr)E{7$)3YFWEpp5!rk;xXmM(VS&YW>;RQ3guq5jZF#P+j7Ep&Sv3>7I*J#EZ$ZY z`91hyIio1Nt<Au&%9~S8`CGu=-zQ`Jj^Ay0@-Mw;(&jrV8*j50-%-1FV*+2B*C&7f zo~vsvvaeq|udM0Q6I~Nu!S#paJc^X6CcK;J_Uy&vkLM%(EVC`N*{pUypKQt|3e7m+ z0a4JPP}xhy&7re*$aTy$+W67RdXc@i@H2<E8y*?Vd2I6WSX+rf$fWwJqIrB*+$9Ur zeK!jGn3r@3pH;OKwDtJTlep<h)4feu*Sh-Vah8;wSI_3rf_DcP8A7H9*|_n&t$#Or zhh)dvOZOS>$_9#jcAIr8_^Y4H8Bdds;Q~vV4^H}XIavMSKL_KpuU?*+>}meQCUD{m zA02fA!SV?{No>DLZ&WIsEKYNYXt^VLd9Lv0gN7?KAO$jb9Y(CzCy9;rQvVG;9uYfn z!lvGRO7(6Rc%FWy!?KNAG5GGJBQrSX%$v1s?$I@WG!rJD53J5PALjmrYwi!r`0ptk zcV`tmQkrFB+2kw};C}MlxkWRR0|HS}>q|q^CbNS30=p8dzn_;xv>n0Oat5Eli~ln` z!z+9~&2fY^zMuojl2Wg%^*EJR>^RPXp-+N=R@u2SKQL%%{F904>YD#zL+*T^`1*jl z!t2W~beiwGF-f9is~gF`e(l+>JmIn7Q?0%mAHP=ee)}%2Wt61*`wE*><Smi^k{qd^ z70kEmgP#7AXY_)O4?q&oMY+d+Dm`R5-%os+H~;C{XHvm-AD>S-*Au@~6I1a+IpY_3 zJ?8@U)hR6eJN=Q=M(OI}mpO;T3fkWIoKs0IllLo6a%p~2CL7`Mcjl6dUk+Y7z0@T& zZQtf;Cp>k|b{GeAR8}8(`O^6M!~^mPr(#t9Yo4gz;~#Y{vqhXC7CH_NDU^h4)XEjw zs@S&*)}I%tUOCVEf!UR$q|29A@Ax3LcDk2(_dJ<J3n#0$@BGOY<<h=INF~TeetDu> zaVgiP{`*HFj~=&Fm13LMG*8U;YDd$u=^hW1W;4JRU_i#%mR9uKv@CVWf7xU0s$!N^ zxS~9v`9`9s)<sS8)vRHjip55g?#{at#1pc{bDvt}CqF_}ycDF0hZwF}$&=q{C3K_w zZc3xa#<qv*w>f%4LaWvWByybNQmJ0PBrHh&r-ga^WR6$P(Roo;GhaR{OH|q$@E}Je zZrQ7cB}M7J?Po48=)54b;54)=08WiT(~ht3ofsfEtLQn0edMC@n8253XU14RHrcW} zze@BhXq;B;te@u`-^CZxw|z?cDYdadlwodi(ca|=r<%|1?9O@NFO+oeBhSBD)$PkG zxfX`H1b_DYEVN^}FMP=hB>X?wsBL6C&FuEBKk0l(vYcSrW1p6ijd!OWjrznM#ag!C zckQB$yty_rb*ikM>o32n=KD!@&ecih?+bFD3-VraKE|B$&z$v#bT{hm^|^T1j@5AX zza^=2+%jA*w4x;4OUb8Hb|y9}e97D-)$AXo3vJJW{mRt8Qn2}(d$P)pC07NJ1NXy> zss;P(r~D9kI62H6IgfwoI?lkb2syk!>uO=sLEt(Fw0;6Q{s5^FK#R>pkxL`c0y8dT z>s+hOG*md7K7Z>a^2t2?$@-HWfd}{NEBh-}3!0uiVf<AoCOx@ReX`fK^Bv1(*=_yu zia`XUe*Lh$cx$Ek-N)8V5#GNY19UDO3~^b}`R-u;w|tIoAy0fH=g3GMN^#Ic37lKW zckG`lFNjzyxbb*7OSsydjf%29u1%#r=VIb!9y{B4l6?U)ng-BlXXVnwfPD+s+}wQk zY;@gjPo>RAr~J8W|LKIE)%xCwpD$%z9r*IKf9w5&7rzR9XAwE*VYK9=X8E$9^i_pL zcl;XvEb|YOx&3Zg^d>)_6X#!L{1Q09ZVDf}2GwXE<&^(z+^x@kWm_g&(*CdIL9>hm z4Y$dL+%OAmDa!eO<c7j3lU28RXNX3y?_p(qnX=idN}=taq{Y*1rB?QTPCo3qpzgwd zd990LJJZhvVkjOsn0zGeb?#QHcWNr-L6axXd8($AVPsSUsVdnns}#BZ*C{^r)gdf$ zPnEg5|B}ytm#ckHzTztPqCRthpW=osmbNpeonZfp;$BHP<+3aL{xN=b=kkr=zZAXo z?8#f(ShJRkwL=CRmoy(VQ7fHg`Ls%)B8x5BFS2aPiF~nzdaoQzPi8-zUtlDEg&8?L zEUoB~sk*No<ZLVuy>9>PUDoR~p7C04HGiFJ0q*51c(4agY^<xDQ9p@GxRCv%N^kVM z$?`GgUpNKlce^b<UsHE!?Hy6yee;>BWRcBPt?apBeD`nY(Yq`gUuvbqWgUO&i8MMW za6_-f=j(M*3(GiNL7y<e^i%U9s!F5vHeCr+xId4XoymXNguwF7l+{l-yZ7DGY`lk3 z%ukeKUd30*W3ns{Ilvo_UzzUsC&Nb;E#IlWlJ?s$!|D)Zw4d-yEBRTgr?On=w^`o3 z_a|-?NarU#`qr~%`J^lPFL++cFubrs&fHU;8tMo<`d)iApl6E}&$sW}bp#bPGo4l~ znOmHZ9Lu1EJW@G*lI^j+_E*fgSC)I-vTR>C&z#{fbaW6>yd{2?F!YdYtg1G9zuTs9 zg34QAqf6)St8Xga)i}p{`VPhKUnMs;RWm8g53D@7d9o?9%#sN+{dIT_6hNo!z(KM! zrC;#(uDh2ir(b`Sa5+Q6y>3_gVv#b@@)<HGk6t?ar+7h$+{=Z+6EAGceAM%^MRSpO zVO!CgQpSWG$VF7pwBr&%w|9zg3Z^c;5a8jmX<PlP%o?YMZeM0t-B?r7d2CMei9qd5 zGgfFWKa)AhE-}AzjUmHf<Uy0^n{3qb#nWRS*2`QH^xl<zLV88>*;CfMo2RV$@aoDM zQCZvMES-hL9({}we#jxpGy6Etm)9K^7%hD>J8g`os@=WZJ7eREm3~gUI^u;a*e%~= zn*`N!Mzy$VZ1mcc{6a<uu}}$8%^iMbsI<aRKg;8Kf<?w<pJ_)l(`Och7ap@ReEqye za{2C#S<bT`&7WZ9HP67e?c716MO5Gvqj@QLm*^zE<5>(ZG?5*4AbHY@d<Dh}lTp*E z#ftYr2a_E1p^H(#alk6ajC%n9*b=fz{GLjAF)4{T_t`c*oOXZR(YGr!9&GQ)5d8B_ z=!Ge=OF@Z}<&pVpP@>!iN|ZnM6}PTpvtj$9fLy0|eUq?$*P|k`N~+b2J)r_Q`i*kr zl-V?WH`K2?QL|iApopWa?0C_I^Y>dXT|SslrMX>^!4^8I3rV??Y>(B&d&)~@f7p|_ zK+(OfiXq&zDOt)Q>QRrAW9+%r)`ARG@NrR4+cveb$I(@0$(fE7wU#bUih`a`t9Pst zlyPUjyt+D*;R^?{J5PO@VWXH3>ly8RQ*Ls^X<z0A?r3f`zOY{Tkirv_rK+FKgox#( zA9u-7H$T|3xyekc@G`>-LFB;UnSI<NKjF-41t(XNzDXKB)0*$!d}1cmH+Ke$F(2FI z)w|KH@A@La;P4dLMrzdGA4qPbFZJk`<oH{w`h4!w9E&ev<-Q(!JZ0}~=4;SE_8uti zCBO0WTGYEX9Q&)=&11vXP=@UIpiRebd<;0M9B6-~jNu9ka#?@)nPJj|ApYOteP_yN zF)4aF#hgjhvX>N?*~@nHPaOklg`-;CGl6Th{2GZU4H;9(j1v>*zk8^{{bga~WY6zQ zJi`1Ls^pQ)POa=w{HoP4MN)99{u~bt6{VFm#{@+h?WXv?aoLr=NuZ$$r4ZBUKN-w^ zZR(b-PbzuNTH5~gDNMPmagkAuISW4O0qO`QexA`-Co8y4ak-}M#PnrMJ8mYudCe7? z_JwCI55rdI2vg&628LCqH&phR@Ep_Vs8V!2=s5dXH`l|I+23A%Njd-EBtw8WauABV zG-PNvh3p)f<Y$5@z<Z*cvB0n2UQ73|$KLzRP~PRYXMUXIbIt~oKFKDVw({4P%-{Ll zaGSBsnw`7b+MmG&**jC-7%t7faa8wu+4F?Nlk>#_;*n)T4kW*kcL=)q(m_ikM}w`G z?P*{a*Clt~WSvrjw@T-n(!LZk&t84`Nz5WwAK~v)G+gJlOXrl$W8mRMj$PI2o*OTO zr8l2UnzOcgfuj3MrSfX?WGRcOW-pF>aXJ_9aOp`wR~c!~-X$Af2&wJs)HF$6KTUYA zBEwwdIP#8^OZIqsnp1g$ex`>;tcy_Sxpn!+4IOLk)RuYZOTBT++;+itf{R%vSK1tP z250C>e{l4AN6KAJaSr2C*mU{Yq&}7MzYDmQG`~@NrQ9wu(Ys=5T)HFYbIt=3kXsZ% zg8hnLw)vjy%u(cc$)VlsTOMwhT%WnoZL#2m<}ZsP?^eVXvUPTe&3eLKd``GwA#%GT z^@nYnn&jW4wi1?O8%14>E@V9U)#!I+@6m;F)hgn=<(J>Su=xMH=JTuqe*1%*uMR(` zWHK;84t9~3hM_Hg7HEH25PeR#L>9TYd-c@t(Qng}*8^60Y@eh4!U<X1m1D_Qw%4r6 zXTMuCZ$UJQZ>0Mf890#D67E9~lLD3R-_rf6r}0U==*j!XpgzWo#rI<M(gmj~thjP} z>xE2JKP%bJWi988U&tX_F7n2()+Nhc?bOY%qft@*PI3xn6}I*_?%!veDA|--vE+Bj zD&rN_$lmVyHseV==b{;Zy_sAezx%7m|6-4H$*SaC{?E^gUV$z|hScxSsmc4BB&WO& z&fb<%o<Hq=-lP*b&;=Bge~+B@e;&ZTY<>M2$=Ow%CqBM)n0JX``=Xf3SC`z}cjwfc zSMmQ%{aMa=vTn+Ly3vpS??<)Dq&SrynVe>ZTZ<eL{XDiXZ$)XWgF6?ut=NTruf9?J zH+SkXACwhdWe;=X&4p`owpy|;-+RnNq<Gg>PNA3TsV7!FHGN{K>UH-V*X;N9PfLV@ zwbLqZtz<))O9G9>m4*D&mpwiA^4+jfry_q-%af6LkKSBrN&w9_E}w9>$a{_<ucYWn z4{n>4ccM<2=kA%;6{7NE%3<G2%||4za3JTz)QX;4vFvBWX5R{9j^4NVG@E%&=ZwIA zg69fnRXk?c<rvl}ce^!XNt&_OpJ1UU*JsT*@OGt#>z{unx_pPQ7zgTB+?wux>GrA{ zlmGf&y_@Q4`2NPfXTC3bt-;+22T)thvT==&t(jr<sYq3`=FGU$&vl>u4YChT{G8fY zdFrLwvTM1M@;I^>k%xCD*|@z~wdZ+S{_37HpUWe6s(Y6hO!Qk){6{S&@tjk_?iV|v zg=Ai*zR6G8nYnB6+hZpjCPz)4_px}N*gS5VrwPKFyLQj9W;2D)<bk??6XlrOL=!FN zZDn*oZK8eAdQ>X8=K)g?ny}cnXy4BKg^UZ3>qlBt?$Zz1y6xAMp7={Q;raCJJKNKf zudKgq@%3Q5vfq>LX}bTm6@vC)>7rzZuM+QVeQM$-@Fmw9S8Uin|CrK>WG$trg1`gj zOg|YKP>Ohwmxk+7J#rLGmu|R}RN%bwrGp)V0zY!HV6E~w5UQcFSJ^pv$&4o}yrQCu zJ|ER;dJ-?SNV#vdO|Z}$-fxU(CCZxPD(1Cs^&2&rqnoeEyjD$83Ya?8pPBCzkMxrj zbH95zZGLIT0Gq{v44QU*l@McKZe7C8vaDu_(FvZHVm@V^)7MYmaB5+5nE(%Hfg!_- zFqDGgg<)p&#>OilTyq6i^PQ}*;``BlTUVCnY};>!3u}=hO!HFmlYRN6t}+!~5B42c zRChaLLHv1c-H9i6zM3#S|GHSQS;nrNGk;=rlv4&n@>*BLy$y-B9_hRDCaRgogJzef z?}o2caoCPrzAr84U&-V&W0KHSKF}VZ56F#yrF_WSgA7o#mD?WsyY6a0oXg7)c?K<% z6o2ol1cL(ua-0w>ez|Sf2rMiPT5|lw_x{N{_P<hA+Y|q{(75~G*=G-;K02ZeE3#Jm zWc-$Y^Zs?V$(;RBPtv;X7wKJ-Y|1{$&iEn^IXb4iH*`w=#eUVDuX5(YRp$g_wCy<H zo43Gyo24cF7nvS+`WPn*tZz5?^gHm;jk@GhAva7+HPxheyHxkBoEnFzDWTsmWAcVy zkGgucvMf~cOcbcyanC2%XZscB+bwNYnz{03XCtxc^340E!lI_~q#@RYquuRw=fRW8 z8llnMT$?tZFkv^8v}o+v`ly+q#2h*6ocbzpok!%BYf;=gj%pt5iN8)9_q@%qO*ToO z;T=kwVWr$;9*M6f%-LpLZF_X8D`1A(;`2MYJx<5_8y!(V8+vTAJ?7*#;TzLh)w4a0 zPiC6QJYI28;?S~{6?^6$K@Y^i)PQ`jkAL3py3(XWw%?4p>t0*#*)6-m6gjlGzRj3m z_~E{A!SbAC72fxfOqtOe*`I9PGJ1Z0mu1aMyEu=rpK&WnAik7a%z8|CW}2LG+|tA+ z-xnX*`1jb9l^Zg%f_zM*I_(dMyzp0S6HfKBcMncyb`VGICND*#ic;={N{VM6R2lmk z-VNf<6_$FnWJ{|>rstU{8c+Tutq5mY@EfJIv*EZ(@4>0!4^?tFE=kXrVq#Irvh)=5 zUwz&X_leIG)R@%;_-=i@I%T$S4ij3=j_KdHZ^1>qNsqY_`x8}z<bU4qoXm22S<|)) zCdI`?=Xo3Qpo<?M?MiSOX+BZT3P~dy`rv6~64$JTjCF2#ej7L$?xIXjfzpcJ1T#=t zi9t#$PwV4PDlIRa`8T&<`-Yo4883vQ6>kg-Q<3c^oc(E1S0&jV+xL7<&2FoYZN<9# zmd8k|ihb98b7uClrT5v-AFb5h`(#e|i+z9P7-CTdx0r0*G#c-{WB>iTJ@N5&xyKT{ z+U7yNJ(DD^2CAID`JQny<6V^DAtu{nqHPZw&mRz7^(6DArM-4Tw8fwEyba%wE90OA z$2-p2ZM<!Ldw<Qx<`=KuUw5?hc9#jST&7|n{U-T>YTOM=_Qq?|mq|Sq+hzNO^F?@u z&~c;E19O(d-AJ1m`t_z)N!q4rD+UK|w4mm=SGsp?RL%vH2Mf+@aO}HP30{7mJVDjU zF<DB>Wv<79df}^{J7ym!E7`?sa-@UlUezYAr5#JJc(7QW<}bQ(hJDx1(~K9CP;-(* zX9&+;-P32UPiEU}Zauq1L1Gr~cf%7M6}m@y)i0HB7fzaIw4^}HbY{{UheXLju@BQ0 zGY7t0f7DU`a_s4q{`%|=-6-xnoc!k4+nn?Fo~`3^lCJ!hv!mb9{YCul=f5+5ow*ap zw(Wx6>_C-6oTZl&1;4D;P@ej7?vl6DHp(!3L^0(;GTX1af1~qGr&TXw%s){y+3esK zw|U^DqHNJg=M=6U|HxGMMCRF_eUoInrG!ftil*N26i{Dyt6M?;3G3y*GabwsZlSca z8s(JDW82Jg)2pvdKF9xP*X-?*%h~_UXgg`gw%tXoOF34-<B9g_3o7b+^OOQ*cdC9d z$*s;-?`2#5VR_?*&}GYS$M;XZ8-yNyU0-Hc965HUlXquutyNF9Is=bAa`3j@O+KQ{ zH}}R1>#NHzA4qoC3QZ_pA7+&Ac`OSWR<q`re7xk<Zsn{0^|)==LZC|^maz0&e)@3u zp&>&<nS@$DBLfd~jhH8=+~@tES)FeU#~I)YK#gpk)&Bu)@>w8@G3$a<We2q#-}6)# zY%5Yv%TrSB^YVHw(5_zRiE_$yqEX3p>Bs;6mHm0!?a}ofjTLpbJ*HLcuSof1>7G`x zq)zt4PgS*fmwk`;Xzh(XGIPr}>!4>l84Plu5vW>m<~GRP-!yI{SKKc9bC7Lr?A*3v zpsCgGn~fvY+#iPQmM{(aa9`|%N1k7qqOQul<=Zo(w>#fn&ggI)8bGH$%-Ft9RF0V; zqrJ%HnB-@NA8l88xuW_7>lfb2`<|B=-2ZWRRMSbr6fv&em+~R<mLkXAUig;DaKRAL zGMFS}^Gw!Vh7shc!yhVqKKUyKUic{S(|p30J<&JLByTb~mc3}T%cet-v;2INCTlG6 zEW66|xU;9)D{IaRh31q@qlDKC8qmqIB`p1w&nLQrj^uh9(0808{efcs+kFxN7bbE} z6qniIs`l<dWUIGdwBZ!xE(@>8HuCbjC+uD_JLg#Ef^Xu6U+mc#rl5>GHrXCa_?EMC zefM>hGw=KY44(4J7z<8bTwuiOG`*?lf!Rdni7y}Mik$jh`1EMx=FIjrh73=kt+^== z4B!9QY~OsGf#KG|gnrNbt5zQWqn<BdHZAj>qBx`DWZ;gOZ8{SRXP<CXxR^WR)b|Am zO<zv3Tc`9gYCs#;OIZ33zK>;QxRr9l#%(7HzvhfE#;J}gI!*?%%s##0H}C8x@3nU} zyX?JfF!%k09!d40CnvV?Z}aUzHsGi6p85I=3vAmiCSPf^Syb;VcUWz)lA8O(Gg~(N z^{_aqVjY?{E8~sX7U;Pa5%mvqPUW{)?O6KKjA072jTzK*T&8coFegJszmhE*Lx3eD z>M&*#Jvrryj|l#-jAw9&MozYza-Y9#-_Hw5B%t%wVLepMgUR<k&npMV7DGQHd=r~$ zh0lHV`|O|;!Hm>Mo$}DI7L+5<j4u9iaWN>Hm7!)cw)LQpUmVeI_?|oco`;^K=YH9k zYtlz7-$$q4PxR|M!gDVeKDr4?gv~#GN-#K7i@Y%WmYa7p;!kZuiOQwqC5K;}nsdwJ zmLAK3*C=g-1;<@9y?iFEw%5yj?Qy%6p~M!sIN|ytv5=cHp2JPZYhqVQX3yCYuP55( zLZM2_fBl>tY1FASD<Pbr3Oawjgr)!G;qzeUdh{zsXv-vexX7&Du*BvVf5s)bWVR#? z_f7i)rNZ-^WEo#nLc$*8;um&*_6ad8(B=9j(HSECek;GUr?#t>(xkmvy(h0Qm#Oq> z6zyL6iE)KIvdd0=m@%R2g-4X;rHMKdJu5vGF20?1ihV&Hv`k2?;JIhd#&AK7wd#z+ z{xa5w;!ZM`CN>1Ms5B?N)3!Q!KfH*&GiiIYm3+f3L`pv{^SKUm41p}y7l}+!9%~PS zNda9vCk37@eposA<&+(nNu1kf%U<?SX9&<oxc^47Jp(9`LF>*KR=_qHO3F1~PiA0v z%ZQR9&KTDB%?BxFMM@FiE(7xLsn>@Y_WuR;t!H7#;Ksg@5_A~Vlm~{#|5$=f1r!4p zx!kam^&tC>S{0<UG>;~KDBj1=uubD&@{!r+QujTc^V_a8^Hcie55I4F-r2r?v&Gv@ zkA$o>{qOGiUtp6vg(1KOdd6O{4#;G=)@q*I=e50V$Ku!IrD^@#oSCyPSujs{rTWZ# z)ir`gZ|(V!ufT9Y8GJ@wYQ>p$P!iszaVxpy*cbj){W70Um{0w4(}XiMFnNDx>6ACm z*6MLPd_Mqo{v*TpuwvyR(_{fjMd7A>|LRurSb4k<cU}^}Gb82hfwWgH$3z8;{USOw zrlneLa|-UXRJSbnR5Y#6V%;Yn&jPc@lNlTif^7%osZz~r$r-Dk@!sm2qN>3-F?#3C zH(RH6tl<50f%{b$Gp}vX4b9o_o^c=P`6l7*)bZnrkelkPj#Up%7GF76t-A1Li97>W zJ2>19Cg1ye?mzh83Fn1!&emIQ&hNFW2;6-0b|$0i)5dvI3j*?fi$%L|SYDXHxxRCA zjgp+xx~FqJKRnqR23g|Xa3~RUoS4^#8H@X@xIkq_yOM3&w&yHCoK4X?4A@qyh<ttH zxWM?2&-?`fKOCdweEb$&E;W+9t#tWd?o{wLLk0~Q@VS62{fh0NhW4$64*j0*&K*<8 zXbN>|d6TyO>k*Yx3g0={CaX-JvcoZbYQd(I1@Xs^t};5Qa+~kp$=%*6O_89kz6c*Y zZA^b;bL{S3(S2PUMs??|-~KAi%a{GX!1%7l#JI^9x;gLMOxSct^Wi_gP4j&I&C%a( z^!UpG`O5}3*`eM6MenPiImf@)T|3?8w)_`^03+OJ@d}^Y9oK`cJ{oy}B$$yUx>M@> zSG!tWWpB6!J}V7u4y0ucJN*%|!31<T8d8A_N{o<E6L2#F6daK8P1F=WUCGvM-^J)x z<%Li5U!AybEVj6*{$a%4>oNb7e*JyHp?`6$>EmtZZ?03aSI+&S`S3Dp76aUM;8m0# zw#QxP>vCJO)YfZ`PeS0tq(|#CRkGT@?Y_8ZW1hi{`}R}97<hOQ*1J~wEPmJx-cxd~ zEq+cz+zDCfnEexOI9$FJCQ-!9V8x0sf06C7`U!SYp$fhMf?HSbzP;OkqxFnf@F#uk zlb{W{C`+~#yzV47IlbbM+#WVB`<x{^lhnlvQ#|L`?b7<mKKn%n<OrYUS_Y3ppezI~ zIF?rQ3;w^6JCFHXoeo<P`#1AA(5j9y7ss~TU{{Uf-~4+_YwYwEMSMHC%JlIA%hv}S z4$oI|v0HflmdfRZW~0MwmRZmDPP&k@i=V+05&Bae7$(I}{eNlWos7~uz7KS7BtVuw zhJ%+sMhHhtchb^b9oBz&>!&F?oyWLlKAt-}G9W>WYu!9+>37TyLWr;ejkYGUpK+Ug ztN-Y`c{jezoqJ>cQqE$9v?*dOpsgG?CPdv}+m!XyB2=oQ<wB&Ne05yf!UwN*ZhmOT zpaRZB;M5Y-b^OG_@3l&%Cd?am{+3?9Tev$(tYwP!i?@(b)&&Kxt~C0c0((+jX;x#M ztXb%?{uM##3eR#bloWw?XP|_eO21(B>ebu_|IV0L`A+2h86l)48wNMR-YtoqZJf5_ z!aV1sg<qun<ZWmEvAqAJ>t&<;vcyd&VI}g?aDi(J+fv)rrB+wjzbGLm+N+MBEfv!P zK@uv+5{G@CeP0x{B)Hb0|1dl*A(a5A+yHx-k__Tn)l(C{?aKOdC+@GFxL-`ijrD)s zhN|oxXI#HnANTy>b2!~~=G(ci0=RS^isjZZIiKIf;sxF(>ZBlPoW|2{@{$95uGZD1 z3H>jX|E%@SUG(%#dXny5|L)12y02J{>dn4!`R=5IN*-CwC57z0i{A!kH5*-L3fv&z zaUv?F&{IZh1thB?<&|${<-)vqD}HkNo=$!dkm#`a)-oh*Q+5b+ZsdmAn$iDKeo22C z^Rl}Uu2=3o%PUG+9CiXWeengc|Fcfr^}6>Q;RTBRD;MZaFI2xQV4<z_!R5>3tCc5< z#Vx;`H0l&}?af><Ika!)q#3)OXtlYdJGuS(DQR8Y_*`kaoUeS4_NjWd9ZqHoJKR!= z=N&LJt9_F5K*pgxQSritJ>VlkAyv!0<RkWb!Y{r{HM801KeO@1wLfdS(Iz>}I<$H- z(~Ul#cFoN?`apPLL&s~@IbqDamO^X)Xen)6^zwn)YnflyU#`2HGwps%$%Pe0k{g{( zx$MMc7bYgS+U9y|W>n4Cc;ZQxzHu$zg3lWSEH)f!QE6KMDG@<=a{Z+Lmp0z}aOT=l z;Yq)zo%B3cBrIqmDQTG}oS);dX3;UV8PW49!^|`UTWi+|oG{+r@g=0#QOP6q)rH>K zhP+pH-HK#dEph2|YgL+!xcb@ni?dBHcTRG6zQ-qkL5IaIQpg!{!dmR94-#A1`Cs(j zIQCVc{xna1HIw1uZ!gTYyP0Q1%}B_rEO52gSSYD!q$YFjq`mp}Q@yth&tCSZee(E; zR@;}Nh4apyGv2w#JiBXl`Lc{OH4O$taR8bvS+-v~i9IR(v$<Zmy719G?|()sEc|{E zygQ-k0Oze>gM)vHx|W1*i8YCNai#lELSMhMi0ZFQ^+#1Yc7nZb^UqCEeYs3%d$ZCF z<Ig({_AH8CvHY#N%8kgBWp<?peJ)fYm19o~llB*FkJvnaXSBHT=Rb3O-js16WpsfX zdIz<ZA31yFa-%5c?3ea}GvD$^=DjNm*rBcVYqoQ_&g@<1^>%h0e7ok==Bish|92WB z-6|8?{AqcEubunXjlpt1uIxN}*YJe_B5!wnk+|@9LY_qv%g+~l2$vj4c9_j`OTKsF zf#hAxh~NOFEj!ysh7}JQ-Phawu=2mycKksjyPWOM2i-QV*FnwEwk@v=85(wh`j+5r zR%i!-_gTGKA^5)Td-V?u=?WeO1vwBg->;G<uAh;i1k6J^IUHPPfX{?pUIe;QK(D5} z-~lHC!-NlO6<uzEL>L$@Xg)9mUFh>7j1V358G6n$sC~k~ut4UKZJSKm5yRs$huv?2 ztYTmY;QJ`&%m+HfoPoii6?9xV1H*!7sQPHlBgr6}7)~|*T`ai~Vts%qA#3r;U)bF9 z<6i9EUk}n}Bt^YHbl!l~|GUy3o??)V4(BJ`_+9<-;CTbq+`8}Il`Lmh@y_4GZNtXE zP$jnY>E~@1v=1Z;9Y_Y5e_{54<SMobAF=mU*LR}`9G9yGHI5moge!c`GxVQi0y*23 z+h&=Nj{V=g?`>-><+pflwOJ;7eud@-2?mB0)<-LOa#NH|_AK66eOpvL;7^P86~}hX zYspV$8qcj_ihW|(8GP32v!Bi4WuP!y@J{53;g;^qO2s4R^!v`-d*)w0=aG%uoE^&g z;d3r1PJDS}9Y4%gZ$mlfN00K8vciq!yQfGjGU(^bKlg~!uqZ5T?z;G`7ndc+9}^Ue zPWEp5p(&Zx&uORp@nehd7nkL6dySxWJu>WE>*uih2WNQ4kLvDe5{oqY1*1#f#p%pn zdh4QPf3IHP%1<h<ikI50^4LA)x#1dBslsQH=RH(jtGj8wd%i#zV$77chFez8omaDQ z*<+Cxh6jzs&wDR6%b&dLSf`VD`~sf*74s*5vQhgOb4B>c^F<fVpYTpw{u*?GEyD`y z)(W4h<Dbe+H@+_YvHy&1*QXf|{B-8^@cr^PmQfUHcd@!;b@+|p!Sp9b+pi|y`|Ak0 zV(N>+(TbiMN9Wjfn;BH5l$+M?yDaj|@Y5byR$=?+uXC>cSu>}j?o`q-L-UWEA6?Gr zW=?<jWyYHHCu-$!;MfhQ=K3Vjw9Vk3TJz0^dvpU%`!b3=H*ER6=ZdiKc^9R+C8irI zXKxHv>$;=YIjKxCtp8+%Ti%85bNWDCy@p-EbB^;Uw^sS2YMxAvQc|>?3p$F9p_E<j zvhjiBO`t^XaGt6ErR1s?hOC#Hjz9Q5m4RV_dgJjgJRfH0OgX-%A9P{X7lEwP?@zMZ z9~SvAW8Om5{)4X#85k}!t9<(xSM|Zz$8mQ2der2LoN++O8N{!=zWW}ipTfZ45bgxa zX5pX}XABI8OS@ovC7Wlp?+^d}$ppHZ?zcj_<i~^jbrV32VPM$R{(b-dzskRU{rbTH z%99JKe;i=9GkEl3asM-AkU+z`ht2YT9(3@B3K^~0XVGWzh(nIiz~n{Mg7vm`FJ4!l zufF$r-}k-wS5^eRumAu1CHJHSEKSQ985nr1Yis|@Z|}RN$Mb8;6_8P$u6{1-oD!M< DThBGK diff --git a/doc/images/xca_template_client_04.png b/doc/images/xca_template_client_04.png deleted file mode 100644 index 6c440a5db3cf8970dea13aa2572203de87ba705f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48296 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 LS3j3^P6<r_5I0Il diff --git a/doc/images/xca_template_root_ca_01.png b/doc/images/xca_template_root_ca_01.png deleted file mode 100644 index 297bba1b7c8609a53456a195d14caba630041dec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23979 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 bKmT7>Xx<<Bd6gCe0|SGntDnm{r-UW|jfVX` diff --git a/doc/images/xca_template_root_ca_02.png b/doc/images/xca_template_root_ca_02.png deleted file mode 100644 index cba0ce6abd1dede444e702e7ca4bf017f1f92737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30610 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 diff --git a/doc/images/xca_template_root_ca_03.png b/doc/images/xca_template_root_ca_03.png deleted file mode 100644 index 05ba510e6968dd84e1a3e4605173f32fb48edb1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36244 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 V@i$j&I1jqQ!PC{xWt~$(69D-1d@29{ diff --git a/doc/images/xca_template_root_ca_04.png b/doc/images/xca_template_root_ca_04.png deleted file mode 100644 index 06530b66aaddc650357f1b9ecbb1c4ed65594a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49073 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%0A=*-Mu$-Mcr>lgFpEQK7*h;o~u}Qk{Dd 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 diff --git a/doc/index.adoc b/doc/index.adoc deleted file mode 100644 index 10b371f..0000000 --- a/doc/index.adoc +++ /dev/null @@ -1,33 +0,0 @@ -= XTA Testumgebung -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -== Vorwort -Die KoSIT stellt die XTA Testumgebung als ein Tool zur Verfügung, welches primär eine automatisierte Prüfung eines Produkts gegen die Konformitätsvorgaben für XTA 2 Version 3 ermöglicht und eine Konformitätserklärung anhand eines generierten Berichts vereinfacht. Sekundär dient die Testumgebung bei der grundlegenden Implementierung von Methodenaufrufen als ein Hilfsmittel (nicht-normativ). Die aktuelle Spezifikation (normativ) und Konformitätsvorgaben für XTA 2 Version 3 können unter https://www.xoev.de/downloads-2316#XTA heruntergeladen werden. - -Zur besseren Nachvollziehbarkeit der internen Abläufe der XTA Testumgebung werden neben der vorliegenden Dokumentation ein SOAP-UI Projekt mit XTA SOAP Requests und der Quellcode zur Verfügung gestellt. - -Die XTA Testumgebung ist ein Projekt der KoSIT und wurde im Auftrag durch Nortal AG umgesetzt. - -Bei technischen Rückfragen zur Testumgebung bzw. Fehlermeldungen melden Sie dieses bitte bei xta2@nortal.com mit CC an kosit@finanzen.bremen.de . - -Bei Rückfragen zum Standard wenden Sie sich bitte an thomas.matern@finanzen.bremen.de oder kosit@finanzen.bremen.de . - -== Dokumentation -* xref:bedienungsanleitung.adoc[Bedienungsanleitung] + - Beschreibt das Starten und die Verwendung der XTA-Test-App -* xref:release_notes.adoc[Release Notes] + - Informationen zu den XTA-Test-App Versionen (z.B. Funktionsumfang) -* xref:erstellen_von_zertifikaten.adoc[Erstellen von Zertifikaten] + - Anleitung zum erstellen von Zertifikaten -* xref:umsetzungsuebersicht.adoc[Umsetzungsübersicht] + - Übersicht welche Funktionen/Funktionalitäten in den Methoden aus den Konformitätsvorgaben umgesetzt wurden -* xref:protokoll.adoc[Protokoll] + - Dokumentation der Klassenstruktur für die Protokollierung der Testfälle -* xref:szenarien.adoc[Szenarien] + - Enthält die Dokumentation der Klassenstruktur für die Szenariendefinition und Sequenzdiagramme für jedes - Szenario mit Erläuterungen -* xref:minimaler_parameterinhalt.adoc[Minimaler Parameterinhalt] + - Tabelle der Datentypen aus den Konformitätsvorgaben nur mit zusätzlichen Links auf referenzierte Datentypen diff --git a/doc/minimaler_parameterinhalt.adoc b/doc/minimaler_parameterinhalt.adoc deleted file mode 100644 index a261b0b..0000000 --- a/doc/minimaler_parameterinhalt.adoc +++ /dev/null @@ -1,166 +0,0 @@ -= Minimaler Parameter Inhalt -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -Die Daten stammen aus den "XTA Konformitätsvorgaben Produkt XTA2v3". In der aufbereiteten Tabelle sind Verweise -enthalten. So ist eine einfache Navigation zwischen den Datentypen möglich. - -[cols="1,1,1"] -|=== -| Parametername | Typ | Abschnitt in XTA Spezifikation - -| [[AdditionalReportListType]]*AdditionalReportListType* | | 5.5.1.3 -| + Report | | -| ++ Key | xta:<<Code.ReportType, Code.ReportType>> | 5.5.1.4 -| ++ Data | xs:base64binary | - -| [[Code.ServiceParameterType]]*Code.ServiceParameterType* | Frei wählbare Codeliste, Empfehlung in Spezifikation | 5.5.1.9 - -| [[Code.RecordType]]*Code.RecordType* | Frei wählbare Codeliste, Empfehlung in Spezifikation | 5.5.1.1 - -| [[ContentType]]*ContentType* | erweitert xs:base64Binary | 5.5.1.10 -| + contentType | oscimeta:NonEmptyStringType | 2.4.2 -| + encoding | oscimeta:NonEmptyStringType | 2.4.2 -| + filename | oscimeta:NonEmptyStringType | 2.4.2 -| + id | xs:ID | -| + size | xs:positiveInteger | - -| [[DeliveryAttributesType]]*DeliveryAttributesType* | | 5.4.2.3.2.1 -| + Origin | xs:dateTime | -| + InitialSend | xs:dateTime | -| + Delivery | xs:dateTime | -| + InitialFetch | xs:dateTime | - -| [[DestinationsType]]*DestinationsType* | | 5.4.2.3.1 -| + oscimeta:Reader | oscimeta:<<PartyType, PartyType>> | - -| [[GenericContentContainer]]*GenericContentContainer* | | 5.5.2.1 -| + xenc:EncryptedData | | -| + ContentContainer | | -| ++ Message | xta:<<ContentType, ContentType>> | -| ++ Attachment | xta:<<ContentType, ContentType>> | - -| [[GetTransportReportResponse]]*GetTransportReportResponse* | xta:<<TransportReport, TransportReport>> | 5.4.1.3.1 - -| [[IsServiceAvailableValueType]]*IsServiceAvailableValueType* | | 5.5.1.8 -| + ServiceIsAvailable | xs:boolean | -| + ServiceIsAvailableUnknown | xs:boolean | - -| [[LookupServiceRequest]]*LookupServiceRequest* | | 5.5.2.2 -| + LookupServiceRequestList | | -| ++ LookupService | xta:<<LookupServiceType, LookupServiceType>> | 5.5.1.6 - -| [[LookupServiceResponse]]*LookupServiceResponse* | | 5.5.2.3 -| + LookupServiceResultList | | -| ++ LookupServiceResult | xta:<<LookupServiceResultType, LookupServiceResultType>> | 5.5.1.7 - -| [[LookupServiceResultType]]*LookupServiceResultType* | erweitert xta:<<LookupServiceType, LookupServiceType>> | 5.5.1.7 -| + oscimeta:Reader | aus <<LookupServiceType, LookupServiceType>> | 2.4.2 -| + ServiceType | aus <<LookupServiceType, LookupServiceType>> | -| + IsServiceAvailableValue | xta:<<IsServiceAvailableValueType, IsServiceAvailableValueType>> | 5.5.1.8 -| + ServiceParameter | | -| ++ ParameterType | xta:<<Code.ServiceParameterType, Code.ServiceParameterType>> | 5.5.1.9 -| ++ Resource | xs:base64Binary | - -| [[LookupServiceType]]*LookupServiceType* | | 5.5.1.6 -| + oscimeta:Reader | | 2.4.2 -| + ServiceType | xs:anyURI | - -| [[MessageID]]*MessageID* | | - -| [[MessageMetaData]]*MessageMetaData* | | 5.4.2.3.1 -| + DeliveryAttributes (-) | oscimeta:<<DeliveryAttributesType, DeliveryAttributesType>> | 5.4.2.3.2.1 -| + Originators (-) | oscimeta:<<OriginatorsType, OriginatorsType>> | -| + Destinations (-) | oscimeta:<<DestinationsType, DestinationsType>> | -| + MsgIdentification (-) | oscimeta:<<MsgIdentificationType, MsgIdentificationType>> | -| + Qualifier (-) | oscimeta:<<QualifierType, QualifierType>> | - -| [[MessageStatusType]]*MessageStatusType* | | 5.5.1.5 -| + Status | xs:integer | -| + ErrorList | | -| ++ Error | xta:<<RecordType, RecordType>> | -| + WarnList | | -| ++ Warning | xta:<<RecordType, RecordType>> | -| + InfoList | | -| ++ Info | xta:<<RecordType, RecordType>> | - -| [[MessageType]]*MessageType* | erweitert oscimeta:KeyCodeType | 5.4.2.3.3.2 -| + payloadSchema | oscimeta:NonEmptyURIType | - -| [[MsgBoxCloseRequest]]*MsgBoxCloseRequest* | <<MsgBoxCloseRequestType, MsgBoxCloseRequestType>> | 5.4.3.3.2 - -| [[MsgBoxCloseRequestType]]*MsgBoxCloseRequestType* | | -| + MsgBoxRequestID | xs:anyURI | -| + LastMsgReceived | wsa:AttributedURIType | - -| [[MsgBoxFetchRequest]]*MsgBoxFetchRequest* | <<MsgBoxRequestType, MsgBoxRequestType>> | 5.4.3.4.3 -| + osci:MsgSelector | Aus MsgBoxRequestType | -| + MsgPart | xs:NMTOKEN | - -| [[MsgBoxRequestType]]*MsgBoxRequestType* | | 5.4.3.2.2 -| + MsgSelector | osci:<<MsgSelector, MsgSelector>> | - -| [[MsgBoxResponse]]*MsgBoxResponse* | <<MsgBoxResponseType, MsgBoxResponseType>> | - -| [[MsgBoxResponseType]]*MsgBoxResponseType* | | 5.4.3.2.2 -| +MsgBoxRequestID | xs:anyURI | -| +NoMessageAvailable | xs:anyURI | -| +ItemsPending | xs:nonNegativeInteger | - -| [[MsgBoxStatusListRequest]]*MsgBoxStatusListRequest* | <<MsgBoxStatusListRequestType, MsgBoxStatusListRequestType>> | - -| [[MsgBoxStatusListRequestType]]*MsgBoxStatusListRequestType* | erweitert <<MsgBoxRequestType, MsgBoxRequestType>> | 5.4.3.1.2 -| + osci:MsgSelector | aus <<MsgBoxRequestType, MsgBoxRequestType>> | -| + ListForm | osci:ListFormEnum | -| + maxListItems |xs:positiveInteger | - -| [[MsgIdentificationType]]*MsgIdentificationType* | | 5.4.2.3.1 -| + MessageID | wsa:<<MessageID, MessageID>> | - -| [[MsgSelector]]*MsgSelector* | | 5.4.3.4.1 -| + newEntry | xs:boolean | -| + MessageID | wsa:<<MessageID, MessageID>> | -| + MsgBoxEntryTimeFrom | xs:dateTime | -| + MsgBoxEntryTimeTo | xs:dateTime | - -| [[MsgStatusList]]*MsgStatusList* | <<MsgStatusListType, MsgStatusListType>> | - -| [[MsgStatusListType]]*MsgStatusListType* | | 5.4.3.5.1.1.2.2 -| + osci:MessageMetaData | <<MessageMetaData, MessageMetaData>> | - -| [[OriginatorsType]]*OriginatorsType* | | 5.4.2.3.1 -| + Author | oscimeta:<<PartyType, PartyType>> | -| + Sender | oscimeta:<<PartyType, PartyType>> | - -| [[PartyIdentifierType]]*PartyIdentifierType* | | 5.4.1.6.1 -| + category | oscimeta:NonEmptyStringType | -| + type | oscimeta:NonEmptyStringType | - -| [[PartyType]]*PartyType* | | 5.4.1.6.1 -| + Identifier | oscimeta:<<PartyIdentifierType, PartyIdentifierType>> | - -| [[QualifierType]]*QualifierType* | | 5.4.2.3.3.2 -| + Service | xs:anyURI | -| + BusinessScenario | | -| ++ Defined | oscimeta:KeyCodeType | -| ++ Undefined | xs:normalizedString | -| + MessageType | oscimeta:<<MessageType, MessageType>> | - -| [[RecordType]]*RecordType* | | 5.5.1.1 -| + Timestamp | xs:dateTime| -| + Code | xta:<<Code.RecordType, Code.RecordType>> | 5.5.1.2 -| + Reason | xs:string | - -| [[TransportReport]]*TransportReport* | | 5.5.2.4 -| + ReportTime | xs:dateTime | -| + XTAServerIdentity | xs:token | -| + MessageStatus | xta:<<MessageStatusType, MessageStatusType>> | 5.5.1.5 -| + MessageMetaData | oscimeta:<<MessageMetaData, MessageMetaData>> | -| + AdditionalReports | xta:<<AdditionalReportListType, AdditionalReportListType>> | 5.5.1.3 -|=== - -Legende: "-" = keine Vorgabe; "\+", "\++", "\+++", usw. = Einrückung zur Anzeige, dass es sich um ein -Bestandteil der zuvor genannten Struktur handelt; "(-)" = Nicht alle Teile dieser Struktur sind verpflichtend umzusetzen. - diff --git a/doc/protokoll.adoc b/doc/protokoll.adoc deleted file mode 100644 index 91b6b53..0000000 --- a/doc/protokoll.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Protokoll -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -== Aufbau eines Protokolls - -Testergebnisse werden in ein Protokoll geschrieben. Ein Protokoll enthält ein oder -mehrere Szenarien-Protokolle. Jedes Szenarien-Protokoll enthält Ereignisse und deren -Ergebnisse. - -.UML Diagram Protokoll -image:./puml/protokoll.svg["UML Diagram Protokoll"] diff --git a/doc/puml/autor_asynchron.puml b/doc/puml/autor_asynchron.puml deleted file mode 100644 index 13cbec2..0000000 --- a/doc/puml/autor_asynchron.puml +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -participant "Autor (asynchron)" as autor -participant "Sender (asynchron)" as sender #LightGreen - -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessage -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessage -aufgerufen werden -end note -activate sender -return -@enduml \ No newline at end of file diff --git a/doc/puml/autor_asynchron.svg b/doc/puml/autor_asynchron.svg deleted file mode 100644 index d109bc7..0000000 --- a/doc/puml/autor_asynchron.svg +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="419px" preserveAspectRatio="none" style="width:462px;height:419px;background:#FFFFFF;" version="1.1" viewBox="0 0 462 419" width="462px" zoomAndPan="magnify"><defs><filter height="300%" id="fswn2kptcr76g" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="70.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="152.2617"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="207.9609"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="331.9258"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="75" x2="75" y1="40.2969" y2="376.4922"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="233" x2="233" y1="40.2969" y2="376.4922"/><rect fill="#FEFECE" filter="url(#fswn2kptcr76g)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="137" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123" x="12" y="24.9951">Autor (asynchron)</text><rect fill="#FEFECE" filter="url(#fswn2kptcr76g)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="137" x="5" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123" x="12" y="395.4873">Autor (asynchron)</text><rect fill="#90EE90" filter="url(#fswn2kptcr76g)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="150" x="156" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="163" y="24.9951">Sender (asynchron)</text><rect fill="#90EE90" filter="url(#fswn2kptcr76g)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="150" x="156" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="163" y="395.4873">Sender (asynchron)</text><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="70.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="152.2617"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="207.9609"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fswn2kptcr76g)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="331.9258"/><polygon fill="#A80036" points="216,79.9961,226,83.9961,216,87.9961,220,83.9961" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="83.9961" y2="83.9961"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="87.5" y="78.9302">checkAccountActive</text><path d="M243,55.2969 L243,95.2969 L449,95.2969 L449,65.2969 L439,55.2969 L243,55.2969 " fill="#FBFB77" filter="url(#fswn2kptcr76g)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M439,55.2969 L439,65.2969 L449,65.2969 L439,55.2969 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="249" y="72.3638">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="249" y="87.4966">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="91.5,106.5625,81.5,110.5625,91.5,114.5625,87.5,110.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="110.5625" y2="110.5625"/><polygon fill="#A80036" points="216,148.2617,226,152.2617,216,156.2617,220,152.2617" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="152.2617" y2="152.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="87.5" y="147.1958">lookupService</text><path d="M243,123.5625 L243,163.5625 L449,163.5625 L449,133.5625 L439,123.5625 L243,123.5625 " fill="#FBFB77" filter="url(#fswn2kptcr76g)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M439,123.5625 L439,133.5625 L449,133.5625 L439,123.5625 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="249" y="140.6294">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="249" y="155.7622">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="91.5,174.8281,81.5,178.8281,91.5,182.8281,87.5,178.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="216,203.9609,226,207.9609,216,211.9609,220,207.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="207.9609" y2="207.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="111" x="87.5" y="202.895">createMessageID</text><polygon fill="#A80036" points="91.5,217.9609,81.5,221.9609,91.5,225.9609,87.5,221.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="221.9609" y2="221.9609"/><polygon fill="#A80036" points="216,259.6602,226,263.6602,216,267.6602,220,263.6602" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="263.6602" y2="263.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="88" x="87.5" y="258.5942">sendMessage</text><path d="M243,234.9609 L243,274.9609 L453,274.9609 L453,244.9609 L443,234.9609 L243,234.9609 " fill="#FBFB77" filter="url(#fswn2kptcr76g)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M443,234.9609 L443,244.9609 L453,244.9609 L443,234.9609 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="249" y="252.0278">muss nach createMessageID</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="249" y="267.1606">aufgerufen werden</text><polygon fill="#A80036" points="91.5,286.2266,81.5,290.2266,91.5,294.2266,87.5,290.2266" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="290.2266" y2="290.2266"/><polygon fill="#A80036" points="216,327.9258,226,331.9258,216,335.9258,220,331.9258" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="331.9258" y2="331.9258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="87.5" y="326.8599">getTransportReport</text><path d="M243,303.2266 L243,343.2266 L426,343.2266 L426,313.2266 L416,303.2266 L243,303.2266 " fill="#FBFB77" filter="url(#fswn2kptcr76g)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M416,303.2266 L416,313.2266 L426,313.2266 L416,303.2266 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="162" x="249" y="320.2935">muss nach sendMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="249" y="335.4263">aufgerufen werden</text><polygon fill="#A80036" points="91.5,354.4922,81.5,358.4922,91.5,362.4922,87.5,358.4922" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="358.4922" y2="358.4922"/><!--MD5=[3e9668f7f6edc98616711782f94f09ff] -@startuml -participant "Autor (asynchron)" as autor -participant "Sender (asynchron)" as sender #LightGreen - -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessage -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessage -aufgerufen werden -end note -activate sender -return -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/autor_synchron.puml b/doc/puml/autor_synchron.puml deleted file mode 100644 index e9b8c08..0000000 --- a/doc/puml/autor_synchron.puml +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -participant "Autor (synchron)" as autor -participant "Sender (synchron)" as sender #LightGreen - -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessageSync -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessageSync -aufgerufen werden -end note -activate sender -return -@enduml \ No newline at end of file diff --git a/doc/puml/autor_synchron.svg b/doc/puml/autor_synchron.svg deleted file mode 100644 index 2357426..0000000 --- a/doc/puml/autor_synchron.svg +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="419px" preserveAspectRatio="none" style="width:461px;height:419px;background:#FFFFFF;" version="1.1" viewBox="0 0 461 419" width="461px" zoomAndPan="magnify"><defs><filter height="300%" id="fz4oqj3uzuxcy" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="66.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="152.2617"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="207.9609"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="331.9258"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="71" x2="71" y1="40.2969" y2="376.4922"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="228.5" x2="228.5" y1="40.2969" y2="376.4922"/><rect fill="#FEFECE" filter="url(#fz4oqj3uzuxcy)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="129" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="12" y="24.9951">Autor (synchron)</text><rect fill="#FEFECE" filter="url(#fz4oqj3uzuxcy)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="129" x="5" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="12" y="395.4873">Autor (synchron)</text><rect fill="#90EE90" filter="url(#fz4oqj3uzuxcy)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="142" x="155.5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128" x="162.5" y="24.9951">Sender (synchron)</text><rect fill="#90EE90" filter="url(#fz4oqj3uzuxcy)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="142" x="155.5" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128" x="162.5" y="395.4873">Sender (synchron)</text><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="66.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="152.2617"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="207.9609"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fz4oqj3uzuxcy)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="331.9258"/><polygon fill="#A80036" points="211.5,79.9961,221.5,83.9961,211.5,87.9961,215.5,83.9961" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="83.9961" y2="83.9961"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="83.5" y="78.9302">checkAccountActive</text><path d="M238,55.2969 L238,95.2969 L444,95.2969 L444,65.2969 L434,55.2969 L238,55.2969 " fill="#FBFB77" filter="url(#fz4oqj3uzuxcy)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M434,55.2969 L434,65.2969 L444,65.2969 L434,55.2969 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="244" y="72.3638">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="244" y="87.4966">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="87.5,106.5625,77.5,110.5625,87.5,114.5625,83.5,110.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="110.5625" y2="110.5625"/><polygon fill="#A80036" points="211.5,148.2617,221.5,152.2617,211.5,156.2617,215.5,152.2617" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="152.2617" y2="152.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="83.5" y="147.1958">lookupService</text><path d="M238,123.5625 L238,163.5625 L444,163.5625 L444,133.5625 L434,123.5625 L238,123.5625 " fill="#FBFB77" filter="url(#fz4oqj3uzuxcy)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M434,123.5625 L434,133.5625 L444,133.5625 L434,123.5625 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="244" y="140.6294">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="244" y="155.7622">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="87.5,174.8281,77.5,178.8281,87.5,182.8281,83.5,178.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="211.5,203.9609,221.5,207.9609,211.5,211.9609,215.5,207.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="207.9609" y2="207.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="111" x="83.5" y="202.895">createMessageID</text><polygon fill="#A80036" points="87.5,217.9609,77.5,221.9609,87.5,225.9609,83.5,221.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="221.9609" y2="221.9609"/><polygon fill="#A80036" points="211.5,259.6602,221.5,263.6602,211.5,267.6602,215.5,263.6602" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="263.6602" y2="263.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="83.5" y="258.5942">sendMessageSync</text><path d="M238,234.9609 L238,274.9609 L448,274.9609 L448,244.9609 L438,234.9609 L238,234.9609 " fill="#FBFB77" filter="url(#fz4oqj3uzuxcy)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M438,234.9609 L438,244.9609 L448,244.9609 L438,234.9609 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="244" y="252.0278">muss nach createMessageID</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="244" y="267.1606">aufgerufen werden</text><polygon fill="#A80036" points="87.5,286.2266,77.5,290.2266,87.5,294.2266,83.5,290.2266" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="290.2266" y2="290.2266"/><polygon fill="#A80036" points="211.5,327.9258,221.5,331.9258,211.5,335.9258,215.5,331.9258" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="331.9258" y2="331.9258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="83.5" y="326.8599">getTransportReport</text><path d="M238,303.2266 L238,343.2266 L452,343.2266 L452,313.2266 L442,303.2266 L238,303.2266 " fill="#FBFB77" filter="url(#fz4oqj3uzuxcy)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M442,303.2266 L442,313.2266 L452,313.2266 L442,303.2266 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="193" x="244" y="320.2935">muss nach sendMessageSync</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="244" y="335.4263">aufgerufen werden</text><polygon fill="#A80036" points="87.5,354.4922,77.5,358.4922,87.5,362.4922,83.5,358.4922" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="358.4922" y2="358.4922"/><!--MD5=[06a445e86b855713deee913b1e87020a] -@startuml -participant "Autor (synchron)" as autor -participant "Sender (synchron)" as sender #LightGreen - -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessageSync -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessageSync -aufgerufen werden -end note -activate sender -return -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/empfaenger_asynchron.puml b/doc/puml/empfaenger_asynchron.puml deleted file mode 100644 index 2e97129..0000000 --- a/doc/puml/empfaenger_asynchron.puml +++ /dev/null @@ -1,45 +0,0 @@ -@startuml -participant "Leser (asynchron)" as leser #LightGreen -participant "Empfänger (asynchron)" as empfaenger - -activate leser - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getStatusList -activate empfaenger -return - - -leser -> empfaenger: getMessage -note right -muss nach getStatusList -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: close -note right -muss nach getMessage -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach getStatusList -aufgerufen werden -end note -activate empfaenger -return - -@enduml \ No newline at end of file diff --git a/doc/puml/empfaenger_asynchron.svg b/doc/puml/empfaenger_asynchron.svg deleted file mode 100644 index 04bc762..0000000 --- a/doc/puml/empfaenger_asynchron.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="434px" preserveAspectRatio="none" style="width:472px;height:434px;background:#FFFFFF;" version="1.1" viewBox="0 0 472 434" width="472px" zoomAndPan="magnify"><defs><filter height="300%" id="fi2wohm1vh7gq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="332.3281" style="stroke:#A80036;stroke-width:1.0;" width="10" x="71" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="139.6953"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="195.3945"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="339.4922"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="76" x2="76" y1="40.2969" y2="391.625"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="246" x2="246" y1="40.2969" y2="391.625"/><rect fill="#90EE90" filter="url(#fi2wohm1vh7gq)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="138" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="12" y="24.9951">Leser (asynchron)</text><rect fill="#90EE90" filter="url(#fi2wohm1vh7gq)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="138" x="5" y="390.625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="12" y="410.6201">Leser (asynchron)</text><rect fill="#FEFECE" filter="url(#fi2wohm1vh7gq)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="175" x="157" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="164" y="24.9951">Empfänger (asynchron)</text><rect fill="#FEFECE" filter="url(#fi2wohm1vh7gq)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="175" x="157" y="390.625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="164" y="410.6201">Empfänger (asynchron)</text><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="332.3281" style="stroke:#A80036;stroke-width:1.0;" width="10" x="71" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="139.6953"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="195.3945"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fi2wohm1vh7gq)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="339.4922"/><polygon fill="#A80036" points="229.5,79.9961,239.5,83.9961,229.5,87.9961,233.5,83.9961" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="83.9961" y2="83.9961"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="88" y="78.9302">checkAccountActive</text><path d="M256,55.2969 L256,95.2969 L462,95.2969 L462,65.2969 L452,55.2969 L256,55.2969 " fill="#FBFB77" filter="url(#fi2wohm1vh7gq)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M452,55.2969 L452,65.2969 L462,65.2969 L452,55.2969 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="262" y="72.3638">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="262" y="87.4966">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="92,106.5625,82,110.5625,92,114.5625,88,110.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="110.5625" y2="110.5625"/><polygon fill="#A80036" points="229.5,135.6953,239.5,139.6953,229.5,143.6953,233.5,139.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="139.6953" y2="139.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="85" x="88" y="134.6294">getStatusList</text><polygon fill="#A80036" points="92,149.6953,82,153.6953,92,157.6953,88,153.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="153.6953" y2="153.6953"/><polygon fill="#A80036" points="229.5,191.3945,239.5,195.3945,229.5,199.3945,233.5,195.3945" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="195.3945" y2="195.3945"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="78" x="88" y="190.3286">getMessage</text><path d="M256,166.6953 L256,206.6953 L436,206.6953 L436,176.6953 L426,166.6953 L256,166.6953 " fill="#FBFB77" filter="url(#fi2wohm1vh7gq)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M426,166.6953 L426,176.6953 L436,176.6953 L426,166.6953 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="159" x="262" y="183.7622">muss nach getStatusList</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="262" y="198.895">aufgerufen werden</text><polygon fill="#A80036" points="92,217.9609,82,221.9609,92,225.9609,88,221.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="221.9609" y2="221.9609"/><polygon fill="#A80036" points="229.5,259.6602,239.5,263.6602,229.5,267.6602,233.5,263.6602" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="263.6602" y2="263.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="33" x="88" y="258.5942">close</text><path d="M256,234.9609 L256,274.9609 L429,274.9609 L429,244.9609 L419,234.9609 L256,234.9609 " fill="#FBFB77" filter="url(#fi2wohm1vh7gq)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M419,234.9609 L419,244.9609 L429,244.9609 L419,234.9609 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="152" x="262" y="252.0278">muss nach getMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="262" y="267.1606">aufgerufen werden</text><polygon fill="#A80036" points="92,286.2266,82,290.2266,92,294.2266,88,290.2266" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="290.2266" y2="290.2266"/><polygon fill="#A80036" points="229.5,335.4922,239.5,339.4922,229.5,343.4922,233.5,339.4922" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="339.4922" y2="339.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="88" y="334.4263">getTransportReport</text><path d="M256,303.2266 L256,358.2266 L463,358.2266 L463,313.2266 L453,303.2266 L256,303.2266 " fill="#FBFB77" filter="url(#fi2wohm1vh7gq)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M453,303.2266 L453,313.2266 L463,313.2266 L453,303.2266 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="262" y="320.2935">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="186" x="262" y="335.4263">Zeitpunkt nach getStatusList</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="262" y="350.5591">aufgerufen werden</text><polygon fill="#A80036" points="92,369.625,82,373.625,92,377.625,88,373.625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="373.625" y2="373.625"/><!--MD5=[2eb86179027c1267d71a934b4e09d109] -@startuml -participant "Leser (asynchron)" as leser #LightGreen -participant "Empfänger (asynchron)" as empfaenger - -activate leser - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getStatusList -activate empfaenger -return - - -leser -> empfaenger: getMessage -note right -muss nach getStatusList -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: close -note right -muss nach getMessage -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach getStatusList -aufgerufen werden -end note -activate empfaenger -return - -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/empfaenger_synchron.puml b/doc/puml/empfaenger_synchron.puml deleted file mode 100644 index 7caadd5..0000000 --- a/doc/puml/empfaenger_synchron.puml +++ /dev/null @@ -1,30 +0,0 @@ -@startuml -participant "Empfänger (synchron)" as empfaenger -participant "Leser (synchron)" as leser #LightGreen - -activate empfaenger - -empfaenger -> leser: sendMessageSync -activate leser -return - - - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach sendMessageSync -aufgerufen werden -end note -activate empfaenger -return - -@enduml \ No newline at end of file diff --git a/doc/puml/empfaenger_synchron.svg b/doc/puml/empfaenger_synchron.svg deleted file mode 100644 index 9fc62df..0000000 --- a/doc/puml/empfaenger_synchron.svg +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="298px" preserveAspectRatio="none" style="width:512px;height:298px;background:#FFFFFF;" version="1.1" viewBox="0 0 512 298" width="512px" zoomAndPan="magnify"><defs><filter height="300%" id="frkv4404e22h" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="195.7969" style="stroke:#A80036;stroke-width:1.0;" width="10" x="85.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="127.1289"/><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="202.9609"/><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="248" y="71.4297"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="90" x2="90" y1="40.2969" y2="255.0938"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="253" x2="253" y1="40.2969" y2="255.0938"/><rect fill="#FEFECE" filter="url(#frkv4404e22h)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="167" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153" x="12" y="24.9951">Empfänger (synchron)</text><rect fill="#FEFECE" filter="url(#frkv4404e22h)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="167" x="5" y="254.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153" x="12" y="274.0889">Empfänger (synchron)</text><rect fill="#90EE90" filter="url(#frkv4404e22h)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="130" x="186" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="193" y="24.9951">Leser (synchron)</text><rect fill="#90EE90" filter="url(#frkv4404e22h)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="130" x="186" y="254.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="193" y="274.0889">Leser (synchron)</text><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="195.7969" style="stroke:#A80036;stroke-width:1.0;" width="10" x="85.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="127.1289"/><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="202.9609"/><rect fill="#FFFFFF" filter="url(#frkv4404e22h)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="248" y="71.4297"/><polygon fill="#A80036" points="236,67.4297,246,71.4297,236,75.4297,240,71.4297" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="95.5" x2="242" y1="71.4297" y2="71.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="102.5" y="66.3638">sendMessageSync</text><polygon fill="#A80036" points="106.5,81.4297,96.5,85.4297,106.5,89.4297,102.5,85.4297" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="100.5" x2="252" y1="85.4297" y2="85.4297"/><polygon fill="#A80036" points="111.5,123.1289,101.5,127.1289,111.5,131.1289,107.5,127.1289" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="105.5" x2="252" y1="127.1289" y2="127.1289"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="117.5" y="122.063">checkAccountActive</text><path d="M258,98.4297 L258,138.4297 L464,138.4297 L464,108.4297 L454,98.4297 L258,98.4297 " fill="#FBFB77" filter="url(#frkv4404e22h)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M454,98.4297 L454,108.4297 L464,108.4297 L454,98.4297 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="264" y="115.4966">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="264" y="130.6294">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="241,149.6953,251,153.6953,241,157.6953,245,153.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="95.5" x2="247" y1="153.6953" y2="153.6953"/><polygon fill="#A80036" points="111.5,198.9609,101.5,202.9609,111.5,206.9609,107.5,202.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="105.5" x2="252" y1="202.9609" y2="202.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="117.5" y="197.895">getTransportReport</text><path d="M258,166.6953 L258,221.6953 L503,221.6953 L503,176.6953 L493,166.6953 L258,166.6953 " fill="#FBFB77" filter="url(#frkv4404e22h)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M493,166.6953 L493,176.6953 L503,176.6953 L493,166.6953 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="264" y="183.7622">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="220" x="264" y="198.895">Zeitpunkt nach sendMessageSync</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="264" y="214.0278">aufgerufen werden</text><polygon fill="#A80036" points="241,233.0938,251,237.0938,241,241.0938,245,237.0938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="95.5" x2="247" y1="237.0938" y2="237.0938"/><!--MD5=[34bd8260e483dd05848a0dc4aa6abe5c] -@startuml -participant "Empfänger (synchron)" as empfaenger -participant "Leser (synchron)" as leser #LightGreen - -activate empfaenger - -empfaenger -> leser: sendMessageSync -activate leser -return - - - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach sendMessageSync -aufgerufen werden -end note -activate empfaenger -return - -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/leser_asynchron.puml b/doc/puml/leser_asynchron.puml deleted file mode 100644 index bf50b1b..0000000 --- a/doc/puml/leser_asynchron.puml +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -participant "Leser (asynchron)" as leser -participant "Empfänger (asynchron)" as empfaenger #LightGreen -activate leser - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getStatusList -activate empfaenger -return - -leser -> empfaenger: getMessage -note right -muss nach getStatusList -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: close -note right -muss nach getMessage -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach getStatusList -aufgerufen werden -end note -activate empfaenger -return -@enduml \ No newline at end of file diff --git a/doc/puml/leser_asynchron.svg b/doc/puml/leser_asynchron.svg deleted file mode 100644 index e8a239a..0000000 --- a/doc/puml/leser_asynchron.svg +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="434px" preserveAspectRatio="none" style="width:472px;height:434px;background:#FFFFFF;" version="1.1" viewBox="0 0 472 434" width="472px" zoomAndPan="magnify"><defs><filter height="300%" id="fwb6a5b900ivh" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="332.3281" style="stroke:#A80036;stroke-width:1.0;" width="10" x="71" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="139.6953"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="195.3945"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="339.4922"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="76" x2="76" y1="40.2969" y2="391.625"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="246" x2="246" y1="40.2969" y2="391.625"/><rect fill="#FEFECE" filter="url(#fwb6a5b900ivh)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="138" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="12" y="24.9951">Leser (asynchron)</text><rect fill="#FEFECE" filter="url(#fwb6a5b900ivh)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="138" x="5" y="390.625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="12" y="410.6201">Leser (asynchron)</text><rect fill="#90EE90" filter="url(#fwb6a5b900ivh)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="175" x="157" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="164" y="24.9951">Empfänger (asynchron)</text><rect fill="#90EE90" filter="url(#fwb6a5b900ivh)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="175" x="157" y="390.625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="164" y="410.6201">Empfänger (asynchron)</text><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="332.3281" style="stroke:#A80036;stroke-width:1.0;" width="10" x="71" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="139.6953"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="195.3945"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fwb6a5b900ivh)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="241.5" y="339.4922"/><polygon fill="#A80036" points="229.5,79.9961,239.5,83.9961,229.5,87.9961,233.5,83.9961" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="83.9961" y2="83.9961"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="88" y="78.9302">checkAccountActive</text><path d="M256,55.2969 L256,95.2969 L462,95.2969 L462,65.2969 L452,55.2969 L256,55.2969 " fill="#FBFB77" filter="url(#fwb6a5b900ivh)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M452,55.2969 L452,65.2969 L462,65.2969 L452,55.2969 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="262" y="72.3638">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="262" y="87.4966">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="92,106.5625,82,110.5625,92,114.5625,88,110.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="110.5625" y2="110.5625"/><polygon fill="#A80036" points="229.5,135.6953,239.5,139.6953,229.5,143.6953,233.5,139.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="139.6953" y2="139.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="85" x="88" y="134.6294">getStatusList</text><polygon fill="#A80036" points="92,149.6953,82,153.6953,92,157.6953,88,153.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="153.6953" y2="153.6953"/><polygon fill="#A80036" points="229.5,191.3945,239.5,195.3945,229.5,199.3945,233.5,195.3945" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="195.3945" y2="195.3945"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="78" x="88" y="190.3286">getMessage</text><path d="M256,166.6953 L256,206.6953 L436,206.6953 L436,176.6953 L426,166.6953 L256,166.6953 " fill="#FBFB77" filter="url(#fwb6a5b900ivh)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M426,166.6953 L426,176.6953 L436,176.6953 L426,166.6953 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="159" x="262" y="183.7622">muss nach getStatusList</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="262" y="198.895">aufgerufen werden</text><polygon fill="#A80036" points="92,217.9609,82,221.9609,92,225.9609,88,221.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="221.9609" y2="221.9609"/><polygon fill="#A80036" points="229.5,259.6602,239.5,263.6602,229.5,267.6602,233.5,263.6602" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="263.6602" y2="263.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="33" x="88" y="258.5942">close</text><path d="M256,234.9609 L256,274.9609 L429,274.9609 L429,244.9609 L419,234.9609 L256,234.9609 " fill="#FBFB77" filter="url(#fwb6a5b900ivh)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M419,234.9609 L419,244.9609 L429,244.9609 L419,234.9609 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="152" x="262" y="252.0278">muss nach getMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="262" y="267.1606">aufgerufen werden</text><polygon fill="#A80036" points="92,286.2266,82,290.2266,92,294.2266,88,290.2266" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="290.2266" y2="290.2266"/><polygon fill="#A80036" points="229.5,335.4922,239.5,339.4922,229.5,343.4922,233.5,339.4922" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="81" x2="235.5" y1="339.4922" y2="339.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="88" y="334.4263">getTransportReport</text><path d="M256,303.2266 L256,358.2266 L463,358.2266 L463,313.2266 L453,303.2266 L256,303.2266 " fill="#FBFB77" filter="url(#fwb6a5b900ivh)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M453,303.2266 L453,313.2266 L463,313.2266 L453,303.2266 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="262" y="320.2935">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="186" x="262" y="335.4263">Zeitpunkt nach getStatusList</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="262" y="350.5591">aufgerufen werden</text><polygon fill="#A80036" points="92,369.625,82,373.625,92,377.625,88,373.625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="86" x2="245.5" y1="373.625" y2="373.625"/><!--MD5=[f29eba7c2c5fa9900c305b47517915d5] -@startuml -participant "Leser (asynchron)" as leser -participant "Empfänger (asynchron)" as empfaenger #LightGreen -activate leser - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getStatusList -activate empfaenger -return - -leser -> empfaenger: getMessage -note right -muss nach getStatusList -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: close -note right -muss nach getMessage -aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach getStatusList -aufgerufen werden -end note -activate empfaenger -return -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/leser_synchron.puml b/doc/puml/leser_synchron.puml deleted file mode 100644 index 9c44c7e..0000000 --- a/doc/puml/leser_synchron.puml +++ /dev/null @@ -1,28 +0,0 @@ -@startuml -participant "Empfänger (synchron)" as empfaenger #LightGreen -participant "Leser (synchron)" as leser - -activate empfaenger - -empfaenger -> leser: sendMessageSync -activate leser -return - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach sendMessageSync -aufgerufen werden -end note -activate empfaenger -return - -@enduml \ No newline at end of file diff --git a/doc/puml/leser_synchron.svg b/doc/puml/leser_synchron.svg deleted file mode 100644 index 50458ed..0000000 --- a/doc/puml/leser_synchron.svg +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="298px" preserveAspectRatio="none" style="width:512px;height:298px;background:#FFFFFF;" version="1.1" viewBox="0 0 512 298" width="512px" zoomAndPan="magnify"><defs><filter height="300%" id="fuht812du4teb" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="195.7969" style="stroke:#A80036;stroke-width:1.0;" width="10" x="85.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="127.1289"/><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="202.9609"/><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="248" y="71.4297"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="90" x2="90" y1="40.2969" y2="255.0938"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="253" x2="253" y1="40.2969" y2="255.0938"/><rect fill="#90EE90" filter="url(#fuht812du4teb)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="167" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153" x="12" y="24.9951">Empfänger (synchron)</text><rect fill="#90EE90" filter="url(#fuht812du4teb)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="167" x="5" y="254.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153" x="12" y="274.0889">Empfänger (synchron)</text><rect fill="#FEFECE" filter="url(#fuht812du4teb)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="130" x="186" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="193" y="24.9951">Leser (synchron)</text><rect fill="#FEFECE" filter="url(#fuht812du4teb)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="130" x="186" y="254.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="193" y="274.0889">Leser (synchron)</text><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="195.7969" style="stroke:#A80036;stroke-width:1.0;" width="10" x="85.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="127.1289"/><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="34.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="90.5" y="202.9609"/><rect fill="#FFFFFF" filter="url(#fuht812du4teb)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="248" y="71.4297"/><polygon fill="#A80036" points="236,67.4297,246,71.4297,236,75.4297,240,71.4297" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="95.5" x2="242" y1="71.4297" y2="71.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="102.5" y="66.3638">sendMessageSync</text><polygon fill="#A80036" points="106.5,81.4297,96.5,85.4297,106.5,89.4297,102.5,85.4297" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="100.5" x2="252" y1="85.4297" y2="85.4297"/><polygon fill="#A80036" points="111.5,123.1289,101.5,127.1289,111.5,131.1289,107.5,127.1289" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="105.5" x2="252" y1="127.1289" y2="127.1289"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="117.5" y="122.063">checkAccountActive</text><path d="M258,98.4297 L258,138.4297 L464,138.4297 L464,108.4297 L454,98.4297 L258,98.4297 " fill="#FBFB77" filter="url(#fuht812du4teb)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M454,98.4297 L454,108.4297 L464,108.4297 L454,98.4297 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="264" y="115.4966">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="264" y="130.6294">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="241,149.6953,251,153.6953,241,157.6953,245,153.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="95.5" x2="247" y1="153.6953" y2="153.6953"/><polygon fill="#A80036" points="111.5,198.9609,101.5,202.9609,111.5,206.9609,107.5,202.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="105.5" x2="252" y1="202.9609" y2="202.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="117.5" y="197.895">getTransportReport</text><path d="M258,166.6953 L258,221.6953 L503,221.6953 L503,176.6953 L493,166.6953 L258,166.6953 " fill="#FBFB77" filter="url(#fuht812du4teb)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M493,166.6953 L493,176.6953 L503,176.6953 L493,166.6953 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="264" y="183.7622">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="220" x="264" y="198.895">Zeitpunkt nach sendMessageSync</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="264" y="214.0278">aufgerufen werden</text><polygon fill="#A80036" points="241,233.0938,251,237.0938,241,241.0938,245,237.0938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="95.5" x2="247" y1="237.0938" y2="237.0938"/><!--MD5=[f0cdfba156cfdc4f3777fad0cc26b89a] -@startuml -participant "Empfänger (synchron)" as empfaenger #LightGreen -participant "Leser (synchron)" as leser - -activate empfaenger - -empfaenger -> leser: sendMessageSync -activate leser -return - -leser -> empfaenger: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate empfaenger -return - -leser -> empfaenger: getTransportReport -note right -muss zu einem beliebigen -Zeitpunkt nach sendMessageSync -aufgerufen werden -end note -activate empfaenger -return - -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/protokoll.puml b/doc/puml/protokoll.puml deleted file mode 100644 index b3b89d1..0000000 --- a/doc/puml/protokoll.puml +++ /dev/null @@ -1,31 +0,0 @@ -@startuml -!pragma layout smetana -class XtaProtocol { - ProtocolMetadata metadata - List<ScenarioProtocol> scenarioProtocols -} -class ProtocolMetadata { -} -class ScenarioProtocol { - ScenarioDefinition scenarioDefinition - List<ScenarioProtocolEvent> scenarioProtocolEvents -} -class ScenarioDefinition { -} -class ScenarioEventDefinition { -} -class ScenarioProtocolEvent { - ScenarioEventDefinition eventDefinition - boolean partOfTheScenario - ScenarioProtocolEventResult eventResult -} -class ScenarioProtocolEventResult { -} - -XtaProtocol --> "1" ProtocolMetadata -XtaProtocol --> "0..*" ScenarioProtocol -ScenarioProtocol --> "1" ScenarioDefinition -ScenarioProtocol --> "1..*" ScenarioProtocolEvent -ScenarioProtocolEvent --> "0..1" ScenarioEventDefinition -ScenarioProtocolEvent --> "1" ScenarioProtocolEventResult -@enduml \ No newline at end of file diff --git a/doc/puml/protokoll.svg b/doc/puml/protokoll.svg deleted file mode 100644 index ecfdb87..0000000 --- a/doc/puml/protokoll.svg +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="416px" preserveAspectRatio="none" style="width:659px;height:416px;background:#FFFFFF;" version="1.1" viewBox="0 0 659 416" width="659px" zoomAndPan="magnify"><defs><filter height="300%" id="f14nitd8zcn7ga" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[956640360af85837b3614180404f3392] -class XtaProtocol--><rect codeLine="2" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="73.6094" id="XtaProtocol" style="stroke:#A80036;stroke-width:1.5;" width="252" x="76" y="12.6094"/><ellipse cx="161.75" cy="28.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M164.7188,34.25 Q164.1406,34.5469 163.5,34.6875 Q162.8594,34.8438 162.1563,34.8438 Q159.6563,34.8438 158.3281,33.2031 Q157.0156,31.5469 157.0156,28.4219 Q157.0156,25.2969 158.3281,23.6406 Q159.6563,21.9844 162.1563,21.9844 Q162.8594,21.9844 163.5,22.1406 Q164.1563,22.2969 164.7188,22.5938 L164.7188,25.3125 Q164.0938,24.7344 163.5,24.4688 Q162.9063,24.1875 162.2813,24.1875 Q160.9375,24.1875 160.25,25.2656 Q159.5625,26.3281 159.5625,28.4219 Q159.5625,30.5156 160.25,31.5938 Q160.9375,32.6563 162.2813,32.6563 Q162.9063,32.6563 163.5,32.3906 Q164.0938,32.1094 164.7188,31.5313 L164.7188,34.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="72" x="182.25" y="32.7637">XtaProtocol</text><line style="stroke:#A80036;stroke-width:1.5;" x1="77" x2="327" y1="44.6094" y2="44.6094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="156" x="82" y="58.8198">ProtocolMetadata metadata</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="240" x="82" y="71.6245">List<ScenarioProtocol> scenarioProtocols</text><line style="stroke:#A80036;stroke-width:1.5;" x1="77" x2="327" y1="78.2188" y2="78.2188"/><!--MD5=[976b2aaf45a9c905fe74fd2f4e72ee12] -class ProtocolMetadata--><rect codeLine="6" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="48" id="ProtocolMetadata" style="stroke:#A80036;stroke-width:1.5;" width="144" x="7" y="135.6094"/><ellipse cx="22" cy="151.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M24.9688,157.25 Q24.3906,157.5469 23.75,157.6875 Q23.1094,157.8438 22.4063,157.8438 Q19.9063,157.8438 18.5781,156.2031 Q17.2656,154.5469 17.2656,151.4219 Q17.2656,148.2969 18.5781,146.6406 Q19.9063,144.9844 22.4063,144.9844 Q23.1094,144.9844 23.75,145.1406 Q24.4063,145.2969 24.9688,145.5938 L24.9688,148.3125 Q24.3438,147.7344 23.75,147.4688 Q23.1563,147.1875 22.5313,147.1875 Q21.1875,147.1875 20.5,148.2656 Q19.8125,149.3281 19.8125,151.4219 Q19.8125,153.5156 20.5,154.5938 Q21.1875,155.6563 22.5313,155.6563 Q23.1563,155.6563 23.75,155.3906 Q24.3438,155.1094 24.9688,154.5313 L24.9688,157.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="112" x="36" y="155.7637">ProtocolMetadata</text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="150" y1="167.6094" y2="167.6094"/><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="150" y1="175.6094" y2="175.6094"/><!--MD5=[a983a378462258ce6b13639e93f264bf] -class ScenarioProtocol--><rect codeLine="8" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="73.6094" id="ScenarioProtocol" style="stroke:#A80036;stroke-width:1.5;" width="314" x="169" y="122.6094"/><ellipse cx="268.25" cy="138.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M271.2188,144.25 Q270.6406,144.5469 270,144.6875 Q269.3594,144.8438 268.6563,144.8438 Q266.1563,144.8438 264.8281,143.2031 Q263.5156,141.5469 263.5156,138.4219 Q263.5156,135.2969 264.8281,133.6406 Q266.1563,131.9844 268.6563,131.9844 Q269.3594,131.9844 270,132.1406 Q270.6563,132.2969 271.2188,132.5938 L271.2188,135.3125 Q270.5938,134.7344 270,134.4688 Q269.4063,134.1875 268.7813,134.1875 Q267.4375,134.1875 266.75,135.2656 Q266.0625,136.3281 266.0625,138.4219 Q266.0625,140.5156 266.75,141.5938 Q267.4375,142.6563 268.7813,142.6563 Q269.4063,142.6563 270,142.3906 Q270.5938,142.1094 271.2188,141.5313 L271.2188,144.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="107" x="288.75" y="142.7637">ScenarioProtocol</text><line style="stroke:#A80036;stroke-width:1.5;" x1="170" x2="482" y1="154.6094" y2="154.6094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="209" x="175" y="168.8198">ScenarioDefinition scenarioDefinition</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="302" x="175" y="181.6245">List<ScenarioProtocolEvent> scenarioProtocolEvents</text><line style="stroke:#A80036;stroke-width:1.5;" x1="170" x2="482" y1="188.2188" y2="188.2188"/><!--MD5=[9948d5c94fcd17b46d9092490209d322] -class ScenarioDefinition--><rect codeLine="12" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="48" id="ScenarioDefinition" style="stroke:#A80036;stroke-width:1.5;" width="146" x="146" y="251.6094"/><ellipse cx="161" cy="267.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M163.9688,273.25 Q163.3906,273.5469 162.75,273.6875 Q162.1094,273.8438 161.4063,273.8438 Q158.9063,273.8438 157.5781,272.2031 Q156.2656,270.5469 156.2656,267.4219 Q156.2656,264.2969 157.5781,262.6406 Q158.9063,260.9844 161.4063,260.9844 Q162.1094,260.9844 162.75,261.1406 Q163.4063,261.2969 163.9688,261.5938 L163.9688,264.3125 Q163.3438,263.7344 162.75,263.4688 Q162.1563,263.1875 161.5313,263.1875 Q160.1875,263.1875 159.5,264.2656 Q158.8125,265.3281 158.8125,267.4219 Q158.8125,269.5156 159.5,270.5938 Q160.1875,271.6563 161.5313,271.6563 Q162.1563,271.6563 162.75,271.3906 Q163.3438,271.1094 163.9688,270.5313 L163.9688,273.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="114" x="175" y="271.7637">ScenarioDefinition</text><line style="stroke:#A80036;stroke-width:1.5;" x1="147" x2="291" y1="283.6094" y2="283.6094"/><line style="stroke:#A80036;stroke-width:1.5;" x1="147" x2="291" y1="291.6094" y2="291.6094"/><!--MD5=[d51cf72de7635e958c0d6fb982633062] -class ScenarioEventDefinition--><rect codeLine="14" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="48" id="ScenarioEventDefinition" style="stroke:#A80036;stroke-width:1.5;" width="181" x="233.5" y="354.6094"/><ellipse cx="248.5" cy="370.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M251.4688,376.25 Q250.8906,376.5469 250.25,376.6875 Q249.6094,376.8438 248.9063,376.8438 Q246.4063,376.8438 245.0781,375.2031 Q243.7656,373.5469 243.7656,370.4219 Q243.7656,367.2969 245.0781,365.6406 Q246.4063,363.9844 248.9063,363.9844 Q249.6094,363.9844 250.25,364.1406 Q250.9063,364.2969 251.4688,364.5938 L251.4688,367.3125 Q250.8438,366.7344 250.25,366.4688 Q249.6563,366.1875 249.0313,366.1875 Q247.6875,366.1875 247,367.2656 Q246.3125,368.3281 246.3125,370.4219 Q246.3125,372.5156 247,373.5938 Q247.6875,374.6563 249.0313,374.6563 Q249.6563,374.6563 250.25,374.3906 Q250.8438,374.1094 251.4688,373.5313 L251.4688,376.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="149" x="262.5" y="374.7637">ScenarioEventDefinition</text><line style="stroke:#A80036;stroke-width:1.5;" x1="234.5" x2="413.5" y1="386.6094" y2="386.6094"/><line style="stroke:#A80036;stroke-width:1.5;" x1="234.5" x2="413.5" y1="394.6094" y2="394.6094"/><!--MD5=[e613b82239d3482aaa7f0d587cef59c8] -class ScenarioProtocolEvent--><rect codeLine="16" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="86.4141" id="ScenarioProtocolEvent" style="stroke:#A80036;stroke-width:1.5;" width="244" x="310" y="232.6094"/><ellipse cx="356.75" cy="248.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M359.7188,254.25 Q359.1406,254.5469 358.5,254.6875 Q357.8594,254.8438 357.1563,254.8438 Q354.6563,254.8438 353.3281,253.2031 Q352.0156,251.5469 352.0156,248.4219 Q352.0156,245.2969 353.3281,243.6406 Q354.6563,241.9844 357.1563,241.9844 Q357.8594,241.9844 358.5,242.1406 Q359.1563,242.2969 359.7188,242.5938 L359.7188,245.3125 Q359.0938,244.7344 358.5,244.4688 Q357.9063,244.1875 357.2813,244.1875 Q355.9375,244.1875 355.25,245.2656 Q354.5625,246.3281 354.5625,248.4219 Q354.5625,250.5156 355.25,251.5938 Q355.9375,252.6563 357.2813,252.6563 Q357.9063,252.6563 358.5,252.3906 Q359.0938,252.1094 359.7188,251.5313 L359.7188,254.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="142" x="377.25" y="252.7637">ScenarioProtocolEvent</text><line style="stroke:#A80036;stroke-width:1.5;" x1="311" x2="553" y1="264.6094" y2="264.6094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="222" x="316" y="278.8198">ScenarioEventDefinition eventDefinition</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="156" x="316" y="291.6245">boolean partOfTheScenario</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="232" x="316" y="304.4292">ScenarioProtocolEventResult eventResult</text><line style="stroke:#A80036;stroke-width:1.5;" x1="311" x2="553" y1="311.0234" y2="311.0234"/><!--MD5=[533816cd4a4b4bf49ddb1bf3f87fabac] -class ScenarioProtocolEventResult--><rect codeLine="21" fill="#FEFECE" filter="url(#f14nitd8zcn7ga)" height="48" id="ScenarioProtocolEventResult" style="stroke:#A80036;stroke-width:1.5;" width="213" x="432.5" y="354.6094"/><ellipse cx="447.5" cy="370.6094" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M450.4688,376.25 Q449.8906,376.5469 449.25,376.6875 Q448.6094,376.8438 447.9063,376.8438 Q445.4063,376.8438 444.0781,375.2031 Q442.7656,373.5469 442.7656,370.4219 Q442.7656,367.2969 444.0781,365.6406 Q445.4063,363.9844 447.9063,363.9844 Q448.6094,363.9844 449.25,364.1406 Q449.9063,364.2969 450.4688,364.5938 L450.4688,367.3125 Q449.8438,366.7344 449.25,366.4688 Q448.6563,366.1875 448.0313,366.1875 Q446.6875,366.1875 446,367.2656 Q445.3125,368.3281 445.3125,370.4219 Q445.3125,372.5156 446,373.5938 Q446.6875,374.6563 448.0313,374.6563 Q448.6563,374.6563 449.25,374.3906 Q449.8438,374.1094 450.4688,373.5313 L450.4688,376.25 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="181" x="461.5" y="374.7637">ScenarioProtocolEventResult</text><line style="stroke:#A80036;stroke-width:1.5;" x1="433.5" x2="644.5" y1="386.6094" y2="386.6094"/><line style="stroke:#A80036;stroke-width:1.5;" x1="433.5" x2="644.5" y1="394.6094" y2="394.6094"/><path d="M160.7006,86.8723 C142.4155,102.9275 121.4502,121.336 105.3359,135.4852 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="105.3359,135.4852,114.738,132.5527,109.0931,132.1862,109.4596,126.5412,105.3359,135.4852" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="96.3359" y="131.5521">1</text><path d="M243.6352,86.8723 C256.7217,98.2703 271.1701,110.8543 284.2637,122.2584 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="284.2637,122.2584,280.104,113.331,280.4933,118.9745,274.8498,119.3637,284.2637,122.2584" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="23" x="260.2637" y="118.3253">0..*</text><path d="M292.1445,196.6797 C275.3686,214.5531 255.6002,235.6148 240.8466,251.3336 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="240.8466,251.3336,249.9225,247.5088,244.2684,247.6879,244.0893,242.0338,240.8466,251.3336" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="231.8466" y="247.4005">1</text><path d="M359.5391,196.6797 C370.0928,208.0299 381.8421,220.666 392.7554,232.4029 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="392.7554,232.4029,389.5563,223.0881,389.3507,228.7413,383.6976,228.5357,392.7554,232.4029" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="23" x="368.7554" y="228.4698">1..*</text><path d="M386.824,318.8573 C373.7607,331.0739 359.9893,343.9528 348.6801,354.5289 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="348.6801,354.5289,357.9856,351.3031,352.332,351.1137,352.5213,345.4601,348.6801,354.5289" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="24" x="323.6801" y="350.5958">0..1</text><path d="M476.7577,318.8573 C489.7,331.0739 503.344,343.9528 514.5485,354.5289 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="514.5485,354.5289,510.7493,345.4423,510.9125,351.0968,505.258,351.2599,514.5485,354.5289" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="505.5485" y="350.5958">1</text><!--MD5=[459ac5a8b084f9a9e3d3408a02f889ff] -@startuml -!pragma layout smetana -class XtaProtocol { - ProtocolMetadata metadata - List<ScenarioProtocol> scenarioProtocols -} -class ProtocolMetadata { -} -class ScenarioProtocol { - ScenarioDefinition scenarioDefinition - List<ScenarioProtocolEvent> scenarioProtocolEvents -} -class ScenarioDefinition { -} -class ScenarioEventDefinition { -} -class ScenarioProtocolEvent { - ScenarioEventDefinition eventDefinition - boolean partOfTheScenario - ScenarioProtocolEventResult eventResult -} -class ScenarioProtocolEventResult { -} - -XtaProtocol - -> "1" ProtocolMetadata -XtaProtocol - -> "0..*" ScenarioProtocol -ScenarioProtocol - -> "1" ScenarioDefinition -ScenarioProtocol - -> "1..*" ScenarioProtocolEvent -ScenarioProtocolEvent - -> "0..1" ScenarioEventDefinition -ScenarioProtocolEvent - -> "1" ScenarioProtocolEventResult -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/sender_asynchron.puml b/doc/puml/sender_asynchron.puml deleted file mode 100644 index db3e6f0..0000000 --- a/doc/puml/sender_asynchron.puml +++ /dev/null @@ -1,41 +0,0 @@ -@startuml -participant "Autor (asynchron)" as autor #LightGreen -participant "Sender (asynchron)" as sender -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessage -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessage -aufgerufen werden -end note -activate sender -return -@enduml \ No newline at end of file diff --git a/doc/puml/sender_asynchron.svg b/doc/puml/sender_asynchron.svg deleted file mode 100644 index 70d4126..0000000 --- a/doc/puml/sender_asynchron.svg +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="419px" preserveAspectRatio="none" style="width:462px;height:419px;background:#FFFFFF;" version="1.1" viewBox="0 0 462 419" width="462px" zoomAndPan="magnify"><defs><filter height="300%" id="f1bixwqvqtv3vv" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="70.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="83.9961"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="152.2617"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="207.9609"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="263.6602"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="331.9258"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="75" x2="75" y1="40.2969" y2="376.4922"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="233" x2="233" y1="40.2969" y2="376.4922"/><rect fill="#90EE90" filter="url(#f1bixwqvqtv3vv)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="137" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123" x="12" y="24.9951">Autor (asynchron)</text><rect fill="#90EE90" filter="url(#f1bixwqvqtv3vv)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="137" x="5" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123" x="12" y="395.4873">Autor (asynchron)</text><rect fill="#FEFECE" filter="url(#f1bixwqvqtv3vv)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="150" x="156" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="163" y="24.9951">Sender (asynchron)</text><rect fill="#FEFECE" filter="url(#f1bixwqvqtv3vv)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="150" x="156" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="163" y="395.4873">Sender (asynchron)</text><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="70.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="83.9961"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="152.2617"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="207.9609"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="263.6602"/><rect fill="#FFFFFF" filter="url(#f1bixwqvqtv3vv)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="228" y="331.9258"/><polygon fill="#A80036" points="216,79.9961,226,83.9961,216,87.9961,220,83.9961" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="83.9961" y2="83.9961"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="87.5" y="78.9302">checkAccountActive</text><path d="M243,55.2969 L243,95.2969 L449,95.2969 L449,65.2969 L439,55.2969 L243,55.2969 " fill="#FBFB77" filter="url(#f1bixwqvqtv3vv)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M439,55.2969 L439,65.2969 L449,65.2969 L439,55.2969 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="249" y="72.3638">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="249" y="87.4966">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="91.5,106.5625,81.5,110.5625,91.5,114.5625,87.5,110.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="110.5625" y2="110.5625"/><polygon fill="#A80036" points="216,148.2617,226,152.2617,216,156.2617,220,152.2617" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="152.2617" y2="152.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="87.5" y="147.1958">lookupService</text><path d="M243,123.5625 L243,163.5625 L449,163.5625 L449,133.5625 L439,123.5625 L243,123.5625 " fill="#FBFB77" filter="url(#f1bixwqvqtv3vv)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M439,123.5625 L439,133.5625 L449,133.5625 L439,123.5625 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="249" y="140.6294">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="249" y="155.7622">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="91.5,174.8281,81.5,178.8281,91.5,182.8281,87.5,178.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="216,203.9609,226,207.9609,216,211.9609,220,207.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="207.9609" y2="207.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="111" x="87.5" y="202.895">createMessageID</text><polygon fill="#A80036" points="91.5,217.9609,81.5,221.9609,91.5,225.9609,87.5,221.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="221.9609" y2="221.9609"/><polygon fill="#A80036" points="216,259.6602,226,263.6602,216,267.6602,220,263.6602" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="263.6602" y2="263.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="88" x="87.5" y="258.5942">sendMessage</text><path d="M243,234.9609 L243,274.9609 L453,274.9609 L453,244.9609 L443,234.9609 L243,234.9609 " fill="#FBFB77" filter="url(#f1bixwqvqtv3vv)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M443,234.9609 L443,244.9609 L453,244.9609 L443,234.9609 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="249" y="252.0278">muss nach createMessageID</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="249" y="267.1606">aufgerufen werden</text><polygon fill="#A80036" points="91.5,286.2266,81.5,290.2266,91.5,294.2266,87.5,290.2266" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="290.2266" y2="290.2266"/><polygon fill="#A80036" points="216,327.9258,226,331.9258,216,335.9258,220,331.9258" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="222" y1="331.9258" y2="331.9258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="87.5" y="326.8599">getTransportReport</text><path d="M243,303.2266 L243,343.2266 L426,343.2266 L426,313.2266 L416,303.2266 L243,303.2266 " fill="#FBFB77" filter="url(#f1bixwqvqtv3vv)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M416,303.2266 L416,313.2266 L426,313.2266 L416,303.2266 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="162" x="249" y="320.2935">muss nach sendMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="249" y="335.4263">aufgerufen werden</text><polygon fill="#A80036" points="91.5,354.4922,81.5,358.4922,91.5,362.4922,87.5,358.4922" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="232" y1="358.4922" y2="358.4922"/><!--MD5=[c033210371811984d26a6b88e81c87bd] -@startuml -participant "Autor (asynchron)" as autor #LightGreen -participant "Sender (asynchron)" as sender -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessage -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessage -aufgerufen werden -end note -activate sender -return -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/sender_synchron.puml b/doc/puml/sender_synchron.puml deleted file mode 100644 index e92d194..0000000 --- a/doc/puml/sender_synchron.puml +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -participant "Autor (synchron)" as autor #LightGreen -participant "Sender (synchron)" as sender - -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessageSync -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessageSync -aufgerufen werden -end note -activate sender -return -@enduml \ No newline at end of file diff --git a/doc/puml/sender_synchron.svg b/doc/puml/sender_synchron.svg deleted file mode 100644 index 350920d..0000000 --- a/doc/puml/sender_synchron.svg +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="419px" preserveAspectRatio="none" style="width:461px;height:419px;background:#FFFFFF;" version="1.1" viewBox="0 0 461 419" width="461px" zoomAndPan="magnify"><defs><filter height="300%" id="fc99sy1wz923i" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="66.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="152.2617"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="207.9609"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="331.9258"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="71" x2="71" y1="40.2969" y2="376.4922"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="228.5" x2="228.5" y1="40.2969" y2="376.4922"/><rect fill="#90EE90" filter="url(#fc99sy1wz923i)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="129" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="12" y="24.9951">Autor (synchron)</text><rect fill="#90EE90" filter="url(#fc99sy1wz923i)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="129" x="5" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="12" y="395.4873">Autor (synchron)</text><rect fill="#FEFECE" filter="url(#fc99sy1wz923i)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="142" x="155.5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128" x="162.5" y="24.9951">Sender (synchron)</text><rect fill="#FEFECE" filter="url(#fc99sy1wz923i)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="142" x="155.5" y="375.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128" x="162.5" y="395.4873">Sender (synchron)</text><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="317.1953" style="stroke:#A80036;stroke-width:1.0;" width="10" x="66.5" y="50.2969"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="83.9961"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="152.2617"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="207.9609"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="263.6602"/><rect fill="#FFFFFF" filter="url(#fc99sy1wz923i)" height="26.5664" style="stroke:#A80036;stroke-width:1.0;" width="10" x="223.5" y="331.9258"/><polygon fill="#A80036" points="211.5,79.9961,221.5,83.9961,211.5,87.9961,215.5,83.9961" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="83.9961" y2="83.9961"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="128" x="83.5" y="78.9302">checkAccountActive</text><path d="M238,55.2969 L238,95.2969 L444,95.2969 L444,65.2969 L434,55.2969 L238,55.2969 " fill="#FBFB77" filter="url(#fc99sy1wz923i)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M434,55.2969 L434,65.2969 L444,65.2969 L434,55.2969 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="244" y="72.3638">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="244" y="87.4966">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="87.5,106.5625,77.5,110.5625,87.5,114.5625,83.5,110.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="110.5625" y2="110.5625"/><polygon fill="#A80036" points="211.5,148.2617,221.5,152.2617,211.5,156.2617,215.5,152.2617" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="152.2617" y2="152.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="83.5" y="147.1958">lookupService</text><path d="M238,123.5625 L238,163.5625 L444,163.5625 L444,133.5625 L434,123.5625 L238,123.5625 " fill="#FBFB77" filter="url(#fc99sy1wz923i)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M434,123.5625 L434,133.5625 L444,133.5625 L434,123.5625 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167" x="244" y="140.6294">muss zu einem beliebigen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="244" y="155.7622">Zeitpunkt aufgerufen werden</text><polygon fill="#A80036" points="87.5,174.8281,77.5,178.8281,87.5,182.8281,83.5,178.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="211.5,203.9609,221.5,207.9609,211.5,211.9609,215.5,207.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="207.9609" y2="207.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="111" x="83.5" y="202.895">createMessageID</text><polygon fill="#A80036" points="87.5,217.9609,77.5,221.9609,87.5,225.9609,83.5,221.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="221.9609" y2="221.9609"/><polygon fill="#A80036" points="211.5,259.6602,221.5,263.6602,211.5,267.6602,215.5,263.6602" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="263.6602" y2="263.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="83.5" y="258.5942">sendMessageSync</text><path d="M238,234.9609 L238,274.9609 L444,274.9609 L444,244.9609 L434,234.9609 L238,234.9609 " fill="#FBFB77" filter="url(#fc99sy1wz923i)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M434,234.9609 L434,244.9609 L444,244.9609 L434,234.9609 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="185" x="244" y="252.0278">muss nach createMessageID</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="244" y="267.1606">aufgerufen werden</text><polygon fill="#A80036" points="87.5,286.2266,77.5,290.2266,87.5,294.2266,83.5,290.2266" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="290.2266" y2="290.2266"/><polygon fill="#A80036" points="211.5,327.9258,221.5,331.9258,211.5,335.9258,215.5,331.9258" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="76.5" x2="217.5" y1="331.9258" y2="331.9258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="83.5" y="326.8599">getTransportReport</text><path d="M238,303.2266 L238,343.2266 L452,343.2266 L452,313.2266 L442,303.2266 L238,303.2266 " fill="#FBFB77" filter="url(#fc99sy1wz923i)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M442,303.2266 L442,313.2266 L452,313.2266 L442,303.2266 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="193" x="244" y="320.2935">muss nach sendMessageSync</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="119" x="244" y="335.4263">aufgerufen werden</text><polygon fill="#A80036" points="87.5,354.4922,77.5,358.4922,87.5,362.4922,83.5,358.4922" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="81.5" x2="227.5" y1="358.4922" y2="358.4922"/><!--MD5=[025b5539efe4ec16c51ca5a20c00aa1a] -@startuml -participant "Autor (synchron)" as autor #LightGreen -participant "Sender (synchron)" as sender - -activate autor - -autor -> sender: checkAccountActive -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: lookupService -note right -muss zu einem beliebigen -Zeitpunkt aufgerufen werden -end note -activate sender -return - -autor -> sender: createMessageID -activate sender -return - -autor -> sender: sendMessageSync -note right -muss nach createMessageID -aufgerufen werden -end note -activate sender -return - -autor -> sender: getTransportReport -note right -muss nach sendMessageSync -aufgerufen werden -end note -activate sender -return -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/puml/szenario-definition.puml b/doc/puml/szenario-definition.puml deleted file mode 100644 index 5477982..0000000 --- a/doc/puml/szenario-definition.puml +++ /dev/null @@ -1,26 +0,0 @@ -@startuml -!pragma layout smetana -class ScenarioDefinition { - String name - String displayName - String description - List<ScenarioEventDefinition> eventDescriptions -} -class ScenarioEventDefinition { - boolean optional - boolean multipleCallable - ExecutionType executionType - List<ScenarioEventType> requiredPreviousEventTypes -} -enum ScenarioEventType -enum ExecutionType { - ACTIVE - PASSIV - PASSIV_ACTIVE -} - -ScenarioDefinition --> "1..*" ScenarioEventDefinition -ScenarioEventDefinition --> "1" ScenarioEventType -ScenarioEventDefinition --> "0..*" ScenarioEventType -ScenarioEventDefinition --> "1" ExecutionType -@enduml \ No newline at end of file diff --git a/doc/puml/szenario-definition.svg b/doc/puml/szenario-definition.svg deleted file mode 100644 index 780b55f..0000000 --- a/doc/puml/szenario-definition.svg +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="383px" preserveAspectRatio="none" style="width:399px;height:383px;background:#FFFFFF;" version="1.1" viewBox="0 0 399 383" width="399px" zoomAndPan="magnify"><defs><filter height="300%" id="fdpd3ag3zw33d" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[9948d5c94fcd17b46d9092490209d322] -class ScenarioDefinition--><rect codeLine="2" fill="#FEFECE" filter="url(#fdpd3ag3zw33d)" height="99.2188" id="ScenarioDefinition" style="stroke:#A80036;stroke-width:1.5;" width="290" x="24" y="13.2188"/><ellipse cx="107.75" cy="29.2188" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M110.7188,34.8594 Q110.1406,35.1563 109.5,35.2969 Q108.8594,35.4531 108.1563,35.4531 Q105.6563,35.4531 104.3281,33.8125 Q103.0156,32.1563 103.0156,29.0313 Q103.0156,25.9063 104.3281,24.25 Q105.6563,22.5938 108.1563,22.5938 Q108.8594,22.5938 109.5,22.75 Q110.1563,22.9063 110.7188,23.2031 L110.7188,25.9219 Q110.0938,25.3438 109.5,25.0781 Q108.9063,24.7969 108.2813,24.7969 Q106.9375,24.7969 106.25,25.875 Q105.5625,26.9375 105.5625,29.0313 Q105.5625,31.125 106.25,32.2031 Q106.9375,33.2656 108.2813,33.2656 Q108.9063,33.2656 109.5,33 Q110.0938,32.7188 110.7188,32.1406 L110.7188,34.8594 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="114" x="128.25" y="33.373">ScenarioDefinition</text><line style="stroke:#A80036;stroke-width:1.5;" x1="25" x2="313" y1="45.2188" y2="45.2188"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="70" x="30" y="59.4292">String name</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="111" x="30" y="72.2339">String displayName</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="101" x="30" y="85.0386">String description</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="278" x="30" y="97.8433">List<ScenarioEventDefinition> eventDescriptions</text><line style="stroke:#A80036;stroke-width:1.5;" x1="25" x2="313" y1="104.4375" y2="104.4375"/><!--MD5=[d51cf72de7635e958c0d6fb982633062] -class ScenarioEventDefinition--><rect codeLine="8" fill="#FEFECE" filter="url(#fdpd3ag3zw33d)" height="99.2188" id="ScenarioEventDefinition" style="stroke:#A80036;stroke-width:1.5;" width="324" x="7" y="148.2188"/><ellipse cx="90.25" cy="164.2188" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M93.2188,169.8594 Q92.6406,170.1563 92,170.2969 Q91.3594,170.4531 90.6563,170.4531 Q88.1563,170.4531 86.8281,168.8125 Q85.5156,167.1563 85.5156,164.0313 Q85.5156,160.9063 86.8281,159.25 Q88.1563,157.5938 90.6563,157.5938 Q91.3594,157.5938 92,157.75 Q92.6563,157.9063 93.2188,158.2031 L93.2188,160.9219 Q92.5938,160.3438 92,160.0781 Q91.4063,159.7969 90.7813,159.7969 Q89.4375,159.7969 88.75,160.875 Q88.0625,161.9375 88.0625,164.0313 Q88.0625,166.125 88.75,167.2031 Q89.4375,168.2656 90.7813,168.2656 Q91.4063,168.2656 92,168 Q92.5938,167.7188 93.2188,167.1406 L93.2188,169.8594 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="149" x="110.75" y="168.373">ScenarioEventDefinition</text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="330" y1="180.2188" y2="180.2188"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="94" x="13" y="194.4292">boolean optional</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="139" x="13" y="207.2339">boolean multipleCallable</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="166" x="13" y="220.0386">ExecutionType executionType</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="312" x="13" y="232.8433">List<ScenarioEventType> requiredPreviousEventTypes</text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="330" y1="239.4375" y2="239.4375"/><!--MD5=[92674f15853f9bd6310960971acb118e] -class ScenarioEventType--><rect codeLine="14" fill="#FEFECE" filter="url(#fdpd3ag3zw33d)" height="48" id="ScenarioEventType" style="stroke:#A80036;stroke-width:1.5;" width="151" x="93.5" y="302.2188"/><ellipse cx="108.5" cy="318.2188" fill="#EB937F" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M112.6094,324.2188 L104.8906,324.2188 L104.8906,311.8281 L112.6094,311.8281 L112.6094,313.9844 L107.3438,313.9844 L107.3438,316.6563 L112.1094,316.6563 L112.1094,318.8125 L107.3438,318.8125 L107.3438,322.0625 L112.6094,322.0625 L112.6094,324.2188 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="119" x="122.5" y="322.373">ScenarioEventType</text><line style="stroke:#A80036;stroke-width:1.5;" x1="94.5" x2="243.5" y1="334.2188" y2="334.2188"/><line style="stroke:#A80036;stroke-width:1.5;" x1="94.5" x2="243.5" y1="342.2188" y2="342.2188"/><!--MD5=[0b9012c2938d8ac8a283e0108579f5d7] -class ExecutionType--><rect codeLine="15" fill="#FEFECE" filter="url(#fdpd3ag3zw33d)" height="86.4141" id="ExecutionType" style="stroke:#A80036;stroke-width:1.5;" width="122" x="263" y="283.2188"/><ellipse cx="278" cy="299.2188" fill="#EB937F" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M282.1094,305.2188 L274.3906,305.2188 L274.3906,292.8281 L282.1094,292.8281 L282.1094,294.9844 L276.8438,294.9844 L276.8438,297.6563 L281.6094,297.6563 L281.6094,299.8125 L276.8438,299.8125 L276.8438,303.0625 L282.1094,303.0625 L282.1094,305.2188 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="90" x="292" y="303.373">ExecutionType</text><line style="stroke:#A80036;stroke-width:1.5;" x1="264" x2="384" y1="315.2188" y2="315.2188"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="39" x="269" y="329.4292">ACTIVE</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="40" x="269" y="342.2339">PASSIV</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="85" x="269" y="355.0386">PASSIV_ACTIVE</text><line style="stroke:#A80036;stroke-width:1.5;" x1="264" x2="384" y1="361.6328" y2="361.6328"/><path d="M169,112.4878 C169,124.0532 169,136.3905 169,147.9556 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="169,147.9556,173,138.9556,169,142.9556,165,138.9556,169,147.9556" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="23" x="145" y="144.0225">1..*</text><path d="M162.4148,247.2652 C161.9861,266.0775 162.3939,286.7269 163.6382,302.0443 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="163.6382,302.0443,166.8963,292.75,163.2333,297.0607,158.9226,293.3977,163.6382,302.0443" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="154.6382" y="298.1112">1</text><path d="M175.5852,247.2652 C176.0139,266.0775 175.6061,286.7269 174.3618,302.0443 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="174.3618,302.0443,179.0774,293.3977,174.7667,297.0607,171.1037,292.75,174.3618,302.0443" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="23" x="175.3618" y="298.1112">0..*</text><path d="M228.4838,247.2652 C242.9971,259.1099 258.4029,271.683 272.5084,283.1949 " fill="none" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="272.5084,283.1949,268.0649,274.4054,268.6347,280.0335,263.0066,280.6033,272.5084,283.1949" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="263.5084" y="279.2618">1</text><!--MD5=[62c8009e46de9d592a57cb2ff02b2e45] -@startuml -!pragma layout smetana -class ScenarioDefinition { - String name - String displayName - String description - List<ScenarioEventDefinition> eventDescriptions -} -class ScenarioEventDefinition { - boolean optional - boolean multipleCallable - ExecutionType executionType - List<ScenarioEventType> requiredPreviousEventTypes -} -enum ScenarioEventType -enum ExecutionType { - ACTIVE - PASSIV - PASSIV_ACTIVE -} - -ScenarioDefinition - -> "1..*" ScenarioEventDefinition -ScenarioEventDefinition - -> "1" ScenarioEventType -ScenarioEventDefinition - -> "0..*" ScenarioEventType -ScenarioEventDefinition - -> "1" ExecutionType -@enduml - -PlantUML version 1.2022.1(Tue Feb 01 19:19:58 CET 2022) -(GPL source distribution) -Java Runtime: OpenJDK Runtime Environment -JVM: OpenJDK 64-Bit Server VM -Default Encoding: UTF-8 -Language: en -Country: null ---></g></svg> \ No newline at end of file diff --git a/doc/release_notes.adoc b/doc/release_notes.adoc deleted file mode 100644 index 8ea8510..0000000 --- a/doc/release_notes.adoc +++ /dev/null @@ -1,83 +0,0 @@ -= Release Notes -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -== Release v1.4.0 - -* Update von Spring Boot Version auf 3.1.4 (plus diverse andere Abhängigkeiten) -* Update von Bootstrap 4 auf Bootstrap 5 -* Erweiterung von CXF SOAP Logging, Nachrichten werden für Debugging komplett auf die Konsole geschrieben -* In MessageMetaData werden Zeitstempel entsprechend der von der Testumgebung ausgeführten Rolle eingetragen -* In der Rolle Autor wird unter Originators kein Sender mehr eingetragen -* In Delivery Attributes werden die Timestamps vorerst nicht mehr als Pflichtangabe geprüft (die rollenbezogene Überprüfung erfolgt in einer späteren Version) -* Erweiterte Konfigurationsmöglichkeiten in der Oberfläche und der Konfigurationsdatei -** Parameter für Autor/Sender/Leser Identifier -** Parameter für Qualifier und Business-Scenario -** Parameter für Delivery Attributes Service Quality -* Bugfix: Zurücksetzen des Berichts funktioniert zuverlässiger als vorher - -== Release v1.3.0 - -* Umstellung des genutzten Frameworks von Axis2 auf CXF -* Umstellung auf Java 17 -* Aktivierung der Schemaprüfung bei ein- und ausgehenden Nachrichten -* Anzeige des genutzten XTA-Webservice-Standards in der Oberfläche -* Anpassung der Dokumentation an die neue Implementierung - -== Release v1.2.1 - -* Bugfix: Soap Header "Action" wird korrekt ausgewertet -* Bugfix: GetStatusList liefert nun eine schematisch korrekte Antwort -* Feature: Die Konfiguration des Webservices kann nun über die neue Oberfläche "Einstellungen" erfolgen -* kleinere Textänderungen in der Oberfläche - -== Release v1.2.0 -* Dokumentaionsverbesserungen -* Verlängerung der mitgelieferten Zertifikate -* Buildzeitpunkt in Fußzeile -* Bilder der Buildszenarios in der Oberfläche "Steuerung" - -== Release v1.1.0 - -* Konfiguration des GeneralContentContainers aus der Oberfläche heraus -* Anpassung von Client und Server, immmer die konfigurierte Version des Containers zu verwenden -* Ergänzung der Dokumentation - -== Release v1.0.1 - -* Anpassung der Farbgestaltung -* Fix: Logging-Modul wurde im Build nicht korrekt der JAR-Datei hinzugefügt - - -== Release v1.0.0 - -* Unterstützung des Sendens von MTOM-basierten Nachrichten aus dem Client und dem Server - - -== Release v0.9.0-SNAPSHOT - -* Erstellung eines Konformitätsberichts auf Basis von auszuwählenden Szenarien -* Unterstützung aller Szenarien der Konformitätsvorgaben -** Rolle Autor -** Rolle Sender -** Rolle Empfänger -** Rolle Leser -* Unterstützung aller spezifizierten Methoden aus den Konformitätsvorgaben -** checkAccountActive -** lookupService -** createMessageId -** sendMessage -** sendMessageSync -** getTransportReport -** getStatusList -** getMessage -** close -* Die Methoden werden durch die Testumgebung sowohl aktiv (als Client) als auch passiv (als Server) unterstützt und je nach Szenario angewandt -* Unterstützung Empfang mit MTOM durch die Testumgebung -* Authentifizierung mittels Client-Zertifikaten -* HTTPs-Verbindung -* Prüfung ob die erforderlichen WS-Addressing SOAP Header angegeben sind -** Action -** To diff --git a/doc/szenarien.adoc b/doc/szenarien.adoc deleted file mode 100644 index adbf3fb..0000000 --- a/doc/szenarien.adoc +++ /dev/null @@ -1,77 +0,0 @@ -= Szenarien -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - - -== Aufbau einer Szenariodefinition - -Eine Szenariodefinition besitzt einen Namen, einen Anzeigenamen und eine Beschreibung. -Weiterhin enthält die Klasse eine Liste von Ereignisdefinitionen. Eine Ereignisdefinition -enthält den Ereignistyp, ob es optional ist, ob es mehrfach aufrufbar ist und welche -Ereignistypen vorher eingetreten sein müssen. - -.UML Diagram Szenariodefinition -image:./puml/szenario-definition.svg["UML Diagram Szenariodefinition"] - -== Definierte Szenarien - -Die zu testende Rolle ist gelb und die Rolle der Testumgebung grün markiert. -Ist keine Einschränkung bei den Methoden in den Sequenzdiagrammen angegeben, dann ist die Aufrufreihenfolge egal. - -=== Autor (asynchron) - -Es wird die Rolle Autor (asynchron) getestet. Die Testumgebung nimmt dabei die passive Rolle Sender (asynchron) ein. - -.Sequenzdiagramm Autor (asynchron) -image:./puml/autor_asynchron.svg["Sequenzdiagramm Autor (asynchron)"] - -=== Autor (synchron) - -Es wird die Rolle Autor (synchron) getestet. Die Testumgebung nimmt dabei die passive Rolle Sender (synchron) ein. - -.Sequenzdiagramm Autor (synchron) -image:./puml/autor_synchron.svg["Sequenzdiagramm Autor (synchron)"] - -=== Sender (asynchron) - -Es wird die Rolle Sender (asynchron) getestet. Die Testumgebung nimmt dabei die aktive Rolle Autor (asynchron) ein. - -.Sequenzdiagramm Sender (asynchron) -image:./puml/sender_asynchron.svg["Sequenzdiagramm Sender (asynchron)"] - -=== Sender (synchron) - -Es wird die Rolle Sender (synchron) getestet. Die Testumgebung nimmt dabei die aktive Rolle Autor (synchron) ein. - -.Sequenzdiagramm Sender (synchron) -image:./puml/sender_synchron.svg["Sequenzdiagramm Sender (synchron)"] - -=== Leser (asynchron) - -Es wird die Rolle Leser (asynchron) getestet. Die Testumgebung nimmt dabei die passive Rolle Empfänger (asynchron) ein. - -.Sequenzdiagramm Leser (asynchron) -image:./puml/leser_asynchron.svg["Sequenzdiagramm Leser (asynchron)"] - -=== Leser (synchron) - -Es wird die Rolle Leser (synchron) getestet. Die Testumgebung nimmt dabei die aktive/passive Rolle Empfänger (synchron) ein. - -.Sequenzdiagramm Leser (synchron) -image:./puml/leser_synchron.svg["Sequenzdiagramm Leser (synchron)"] - -=== Empfänger (asynchron) - -Es wird die Rolle Empfänger (asynchron) getestet. Die Testumgebung nimmt dabei die aktive Rolle Leser (asynchron) ein. - -.Sequenzdiagramm Empfänger (asynchron) -image:./puml/empfaenger_asynchron.svg["Sequenzdiagramm Empfänger (asynchron)"] - -=== Empfänger (synchron) - -Es wird die Rolle Empfänger (synchron) getestet. Die Testumgebung nimmt dabei die passive/aktive Rolle Leser (synchron) ein. - -.Sequenzdiagramm Empfänger (synchron) -image:./puml/empfaenger_synchron.svg["Sequenzdiagramm Empfänger (synchron)"] diff --git a/doc/theme/kosit-theme.yml b/doc/theme/kosit-theme.yml deleted file mode 100644 index 17d2239..0000000 --- a/doc/theme/kosit-theme.yml +++ /dev/null @@ -1,29 +0,0 @@ -extends: - - default-with-fallback-font -running-content: - start-at: body -title-page: - align: left -page: - margin: [0.75in, 1in, 0.75in, 1in] -base: - line-height-length: 20 -heading: - #font-color: #FF8000 - font-size: 12 - line-height: 1.2 -#link: - #font-color: #009900 -footer: - height: 0.75in - line-height: 1 - recto: &shared_footer - left: - content: 'Copyright © 2021-{docyear} Koordinierungsstelle für IT-Standards (KoSIT) | https://www.xoev.de/[https://www.xoev.de]' - right: - content: '*{page-number}*' - verso: *shared_footer -caption: - align: left - # font-color: #FF0000 - font-size: 10 \ No newline at end of file diff --git a/doc/umsetzungsuebersicht.adoc b/doc/umsetzungsuebersicht.adoc deleted file mode 100644 index 6415bbb..0000000 --- a/doc/umsetzungsuebersicht.adoc +++ /dev/null @@ -1,173 +0,0 @@ -= Umsetzungsübersicht -:toc: -:toc-title: Inhalt -:toclevels: 3 -:docinfo: shared - -== Vorwort - -Dieses Dokument enthält eine Übersicht der umgesetzten Funktionen/Funktionalitäten. - -* Die Spalte "Client-Test (Testserver)" enthält die Prüfungen und Antworten, welche man erhält, wenn man seinen eigenen Client testet und die Umgebung als Server fungiert. -* Die Spalte "Server-Test (Testclient)" enthält die Prüfungen und Antworten, welche man erhält, wenn man seinen eigenen Server testet und die Umgebung als Client fungiert. - -== Tabelle umgesetzte Funktionen/Funktionalitäten -[options="header",cols="1,1,1,1"] -|=== -| Funktion | Client-Test (Testserver) | Server-Test (Testclient) | Bemerkung -//--- -| checkAccountActive -a| * Prüfung Eingangsparameter -* Rückgabe verpflichtender Parameter -a| * Anfrage mit verpflichtenden Parametern -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -| Eine Authentifizierung erfolgt nur über das Client-Zertifikat - -| lookupService -a| * Rückgabe verpflichtender Parameter (nicht vollständig) -a| * Prüfung auf SOAP Fehler in Antwort -| - -| createMessageId -a| * Prüfung Eingangsparameter -* Rückgabe verpflichtender Parameter -* MessageID wird generiert und gespeichert -a| * Anfrage mit verpflichtenden Parametern -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -* MessageID wird gespeichert -| - -| sendMessage -a| * Prüfung Eingangsparameter -* Prüfung ob MessageID übereinstimmt -* Rückgabe verpflichtender Parameter -a| * Anfrage mit verpflichtenden Parametern -* gespeicherte MessageID wird verwendet -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -| - -| sendMessageSync (Autor, Sender) -a| * Prüfung Eingangsparameter -* Prüfung MessageMetaData aus SOAP Header -* Prüfung ob MessageID übereinstimmt -* Rückgabe verpflichtender Parameter -* Rückgabe MessageMetaData im SOAP Header -a| * Anfrage mit verpflichtenden Parametern -* Anfrage mit MessageMetaData im SOAP Header -* gespeicherte MessageID wird verwendet -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -* Prüfung Rückgabe enthält MessageMetaData im SOAP Header -| - -| sendMessageSync (Empfänger, Leser) -a| * Anfrage mit verpflichtenden Parametern -* Anfrage mit MessageMetaData im SOAP Header -* MessageID wird generiert -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -* Prüfung Rückgabe enthält MessageMetaData im SOAP Header -a| * Prüfung Eingangsparameter -* Prüfung MessageMetaData aus SOAP Header -* MessageID wird gespeichert -* Aufruf von checkAccountActive und getTransportReport -* Rückgabe verpflichtender Parameter -* Rückgabe MessageMetaData im SOAP Header -| - -| getTransportReport -a| * Prüfung Eingangsparameter -* Prüfung ob MessageID übereinstimmt -* Rückgabe verpflichtender Parameter -* *SignatureType enthält keine Daten* -a| * Anfrage mit verpflichtenden Parametern -* gespeicherte MessageID wird verwendet -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -* *Inhalt des SignatureTypes wird nicht geprüft* -* *keine Wiederholung der Abfrage falls Nachricht noch nicht versandt* -| - -| getStatusList -a| * Prüfung Eingangsparameter -* generiert und speichert MessageID -* generiert und speichert MsgBoxRequestID -* Rückgabe verpflichtender Parameter -* Parameter NoMessageAvailable wird nicht gesetzt -a| * Anfrage mit verpflichtenden Parametern -* MessageID wird gespeichert -* MsgBoxRequestID wird gespeichert -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -a| * MessageID: Dieses ist eine ID eines Transportauftrages, normalerweise aus einem Transportauftrag von einem Author (Identifiziert den Transportauftrag eindeutig). -* MsgBoxRequestId: ein Iterator, welcher von getStatuslist erstellt wird, um alle noch für den Auftrag ausstehenden Nachrichten für getNextMessage aufzulisten und abzuholen. - - -| getMessage -a| * Prüfung Eingangsparameter -* Prüfung ob MessageID übereinstimmt -* Rückgabe verpflichtender Parameter -a| * Anfrage mit verpflichtenden Parametern -* gespeicherte MsgBoxRequestID wird verwendet -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -a| * Wird mit der gleichen MessageID aus getStatusList aufgerufen. Die MsgBoxRequestId ist hier uninteressat. - - -| close -a| * Prüfung Eingangsparameter -* Prüfung ob MessageID übereinstimmt -* Prüfung ob MsgBoxRequestID aus getStatusList übereinstimmt -* Rückgabe verpflichtender Parameter -a| * Anfrage mit verpflichtenden Parametern -* gespeicherte MessageID wird verwendet -* gespeicherte MsgBoxRequestID wird verwendet -* Prüfung auf SOAP Fehler in Antwort -* Prüfung Rückgabe enthält verpflichtende Parameter -a| * Quittieren einer Nachricht, geschlossen wird diese per Übergabe der MessageID. Damit werden alle Nachrichten, welche mit dieser ID von getStatusList aufgelistet wurden, quittiert. -* Auch die MsgBoxRequestId aus getStatusList muss mitgesendet werden. - - -| getNextMessage - -*(Diese Funktion ist in der Testumgebung nicht implementiert)* -| -| -a| * Hier werden über einen Iterator weitere Nachrichten abgerufen. Der Iterator hat eine ID, die MsgBoxRequestID. Diese erhält man durch einen Aufruf von getStatusList. -* osci:LastMsgReceived zum Quittieren der letzten Nachricht per getNextMessage - - -| getNextStatusList - -*(Diese Funktion ist in der Testumgebung nicht implementiert)* -| -| -a| * Hier werden über einen Iterator weitere MessageIDs und Metadaten abgerufen. Der Iterator hat eine ID, die MsgBoxRequestID. Diese erhält man durch den ersten Aufruf von getStatusList. - - - -|=== - -== Nutzung und Prüfung der verschiedenen MessageIDs -=== getStatusList - -* MessageID: Dieses ist eine ID eines Transportauftrages, normalerweise aus einem Transportauftrag von einem Author (Identifiziert den Transportauftrag eindeutig). -* MsgBoxRequestId: ein Iterator, welcher von getStatuslist erstellt wird, um alle noch für den Auftrag ausstehenden Nachrichten für getNextMessage aufzulisten und abzuholen. - -=== getMessage: - -* Wird mit der gleichen MessageID aus getStatusList aufgerufen. Die MsgBoxRequestId ist hier uninteressat. - -=== getNextMessage - -* *(Diese Funktion ist in der Testumgebung nicht implementiert)* -* Hier werden über einen Iterator weitere Nachrichten abgerufen. Der Iterator hat eine ID, die MsgBoxRequestID. Diese erhält man durch einen Aufruf von getStatusList. -* osci:LastMsgReceived zum Quittieren der letzten Nachricht per getNextMessage - -=== close - -* Quittieren einer Nachricht, geschlossen wird diese per Übergabe der MessageID. Damit werden alle Nachrichten, welche mit dieser ID von getStatusList aufgelistet wurden, quittiert. -* Auch die MsgBoxRequestId aus getStatusList muss mitgesendet werden. diff --git a/other_files/README.md b/other_files/README.md deleted file mode 100644 index d9b3341..0000000 --- a/other_files/README.md +++ /dev/null @@ -1 +0,0 @@ -Das Passwort für alle p12 und jks Dateien sowie für die XCA Datei lautet "password". diff --git a/other_files/xta_tester.xdb b/other_files/xta_tester.xdb deleted file mode 100644 index 41f65f5f2373220826e2fc7de5fa9c8317ac90cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196608 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�G2Ltr!nMnhmU z1V%$(Gz3ONU^E0qLtr!nMnhmU1V&T{Af5kbFna#qh>H4A&yI!w%|oC&pPiGDg+-T< zW4fxWR(an9(8!~)v5B#zfu)&?v$K=Avx%FaucxPLXqB_GV^wLoW4Wi3W4foOuYrGH zPDzzdnyW>*OJJmzcYc&-Mp?3-W1y=K=orcL#N-O+Dn~D;biXhs$H)-J>>xMaK(Jbu zu)si1*YYUms0gp(#Bh@emnzWd*&ubvAx_y|Imx*d1xZ=1!M;w8?v93`uFe_0ULm=b zl_~CS#h$Ki9=<{4<?iW`Aai_NEBxFO!%Z`ia{US-!^_h{jVy~(B7zE%j7+P1gNn=D z1HtNCTr0dH!(3g{!`#EFQryETJ>9&@l8gh>0}Wg&ys8{?kdMoB4s;E7cMmE^&MhvD z%nQp(bk8VD&NX#Rg1W&c*RL!o#4**a+@R7o%eB(i#k1T$#Mji<#VOIP+@Q)g#I?e= z%CX$n1%#aveLdZad;^Qiogr><cP;mF4GM7$@O3nR_|M7LJuo+{GRZxs6e)~6ki*C| z%P|lVmiZyhp{8ZYc|jRT&Q4B2Rj$dtPWcdXDttqNa&t-}!%edi!`+HK-TcauJi-hT z!!1jbt6bB3ognr(R``a8y9GIUx&`GV8wceiXF540dpH#*hWlltxaX85Wx3}0I)}PD z2g8mAb@g%#ij0hMqTG|fy2_sdUox2#Ocb}CIW_A-bJFE5QWvMd3ebWZF^=%Xh( z)9ys)d}D+1RA}Dw2=aAx%yM*u#(j!QdSJMdQ;<_Yc34redzODjrF)5|SwK}vT5@=% zb9R_Th@%fEop}UWxH>udIy-8om%Elnx`YK8<TyE&mpi9NdU}^fIynV~dN`K5Lh@md zL6DP^Z@Fuvr&p4@WmaT(MSha8pFu`>kiMg%qm!?btGjc!vwN_kySuilr;}q~psQoK zr+c6aDBmNWnqLe(HQ&|IDci*)z&Fj<JJLI%($gZ(*)Z9!G&s;SEZ5WA#NWg_&#b`J zG|bb?t*G3$+|{cvGO4QE(=k20vcx$#FSI1x+rr&3Ik2MK$2lW7KP<`F&9X}0%%dbH z)WpM6zbw}&v(no=EW*_<FCr+iG$^RV-#x%A!oaVj*gr8R%F#X8)3?eu%_POoH7Ccd z%qcM2*UdRH&(Nqm!mP?NDBsP+Fft$_C%~;LD<U{5FxSjCG{DcV%FjhVH!LVAG^ipi zBHz%UIME|L#oH^@CCJmitT@!br7*H8!`-nUB&aCKtUN#6H^87W)yc0gC$%EcSKHE~ zz%jBQwa6#M*`*-MFU%q($E3jB!^k4pUtd2eGb`OOC^166GSAsD$0f`wJkZa*EHtM$ z-=HKkqrk-^BRIIg%(x)aq_Q|W*CjQwG|<#9BsC+r%+S9uuPVnd!!6q>!_n5ZTbmJ5 z;&V=u6?8hF{smOx8yGn{nHm_FIJugeJ33k#flGYP5NBt{@?3a{?^sw8=;UK+Tv*^a zvP*nO>0aUM5?YQ{;={#!J>ByLL5ZK_>y!<y85}EogV9R-;3OkU15Z~!C*R=Yaxat` zJln}FBO^O8!mG$9*UK={C?h|~*sC<q9aig@W+fRJl&7b=W`b%kq*}tsF)-B8(Ztiq zrQ8uD@9mfm%Iz+>zFEPE9@+Ux8IFZcWl^CSriM|0rRHJTLE(`;L7oxj;o*K|2B~Jj z-sZ)H1;!@f7S85bd1c;3;b!{ASpk8Lj`_xEp-$luUJ<UY&JmvG&RN-hLCM*v!D-%= zY39!6`HmIE83Eo&UXD(Y1=&8uUjDA8>87EHLE)ZG>29UQ##yN)ZswI9Wv<?NPRZdO zzKJQO{<*G(73tdLep#WRMd2P^Wv-6Ck!8shj{0GlPN_vkmXTGKxt=NBg$BV<sZoZR zNx{DEVc|Z3DTdnV6^>pJVOi#hnP$!&iEg3k-UgKc-i~hR`BC}dDM^t5DM9Jsx!M)Z z?%5R;1(o{F#;z6l1|H6p`JMru{%)?}mdVDUMFGB{j%8uNfgY76LFExn-rh!)25zMm zE_uQFrRF6WuEn`Y-oC*V=_!#>iKTwQ<z?nhMV09$d0EM>70yLYj_JNmj*jkGAyrO( zpo6>}4MS60%LCnf9ete~(=0#-d4o!Ae<!C%S2suRq{L+H;_xb`GK0K)qo^<o%WSh8 zOT&r)b6>||P#Q^bDF>IzP8nH_K~Cv8=^5GSP8nqxpnFRoHGyL?wtVlBp6=@8=#y<` z?r!Sh<57~A7FL**X`yYLS`cX*8R!xbl@ethlA#^o7NVUSZe$T<p6nUr?pfv$<q;5U znNnp^<QHg~73x!E<P_<c;Su0b6&X}&?vmnBTHq3znroP1>X{UjnQdTPQC?Y@Tai>z z7Lw)X=@OLYU20-bQe>DC;O|>xS)3gf?va%2XQZD|k(yWRX5t?1W@@VK;pOAum|NhR zloIG;5|mqHW>ged=9J>*?P6r^@0^=noNKO~?hzT4W0C4tP-LWSZf22~5?Pw-m>l8h zQSR<;n3!temtCZ7?x|mv9T|{PSW=Q3n(yRiWL|7+pr7oLYhhvJlU-O~7M|%IWSL)( zSyG<jUz}GQ;9^nim{Y3noa&vN8KP|#P*mWr?-Q15Y*u7a;AmW#>FirvnV01qVws#+ z<rJ7zs$Jw^99ifRWR@0U;o=wO<z&IYz@X0#n*V3yf5yQ7jOJZ|Q42;xU^E0qLtr!n zMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1ZWxp5{&GO4B8xw41$)HmX?M_#)d}5rk19b zQF5UE|LFREng;%;;iDli8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Au!+}0P6oU z@}FSfKQZ7=8Fj#D2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1Jh5&&OFk@tA z)YaBz;1D#kFg3HVbaOK@b~ZC|b~80HFfuYUG&V3aHZ?Y~h(hKX7({{k|I7^U7`T~O zmoU5|V9Ah|?lfj*Wn`R`%F5;I?mFPRhaDXq9o@@8WVvHXx>E*-lNjif?dWO(5_ETT z@pbe|cQgcXT+^M59Nk?VlN_B29NhyQLjoamQaVW1)6o}1Iij0m01|a}bOBM0zK$Ng zjwyjonU1c-j!}V5reM)@#|jYb=IB)A=n?7|neOBSaz~1zlRwzLK&Kp#JQzEfI3}e# zRXMu(IwqGp6@%!gK&MJak4TVtl^}OV20E2Ex`%?5g9wjwr&5r;q3KRJAazOQPFWyx zQ^5YP0GSu&=;7&@1X2vak&f;rAoGJk<|KjjB|An2g6s=*Oip(yhA0E=`}73quX1$t zbxbM;*=qoDN2#MnAY6%?BgFo|a*+L=jwy~#p^hHej>(Qte?i079qP`&a;FSOH%E|p z#g6XTj*;a~rjBlC_Btc%4GeSwyE7%-sm#&c7vxR@kiMjHr&0`kPB49*AazwB|Am3V z50VJLZuSPb*WJP~4CG$-a!`D`g49K&gW}r+<iBi3*HFh)N2hW}*Fcat1|WGyM@LvZ zhdR0!gW}l*6t0PZPGI*$g8T)s2d2&!qz;@8K>h>S2MSV0$4W<+Y>-<*LH<ZCcdBx9 z1*ba$Z1L*`iXY<a^9Q*z7-Ww}wqsbJ6WITbj*g+AaD$}lP*8jtfb2^FyBnOi{Xz2J zcy|qSOa$peieD#3NP2?!-xKO?Pf)xO@_(?SJ1ic+@f-+Em-!$=AlL*HzJ{Rml<4T> z19E>VIB7xin-e(vVe(#}bQ=ZEKfaEU;Cu}>1)Ptf9G#3D-7G-yX96-0EaT|t=;r7Y z07}21<xYX1e3Ihml;P;%2#R+|zDsv3?}}z(Wn`Rc%EC2L_W6TC2a;IPOEhrF=<MhM zE@6T}B?`D?aL;y(a&+<orPwG?4gwjF?g)+p7f{Hfl$;<*Pe)&H;wlG~G=`v*085#W zl;jFh6bg<JaEXaE2N;2JU`V=Ch@(qBD8^tVK(V8HI;aGx0>!kCqhq?GYqn#kqobLl ziz~=pV@GEbP>Ed%Dw%ztB{00C1m!sQa>r0`PVofQ3^|~j90IN(KqVZ=X<(cRN^!~M zq?ADEpd41^=;jGZiKU<vodPWx&`Tm$M2T4D=x*Sc1gZ(#O&n9eR)dL9sQoS=bCT1Y z3>@789a96H%0YZcID&IzB0`<3W2hsjq$~&J<SbB0jBc+d!d@q+JB=LOEkHRs0~DT# zfgt@Rpc14KR8xUn;^^oIcP}WMJbXd^L$6u#LGDN@cZvYHFUirV7!-d|flj%gbOWww z+yfnh0-a1iIWP#E69XNi&~kiYxsxF%$0mbHWDjtO1g_B_H5jyHa4dIB1jiprN$2Y5 z;_2uMN|jDveN~|J6$q-?JOUlD#BVsroy6G(t{I>ulv5bUT(G;H0zv5;oPJV3CAEjA zV_={Yw8R31oCzpg!QmJLs*yo01duQUyMjvINSOaY`2|$sr8{L2^uLoQs3nmBaz|pI zQx>R3jYO2_VAEZ|@e~TGk@L}7B%lxim5dpn7D<YuQ$8sFB&9p$f@+3HPzwTV0*C;Y z(Al7JAOalT>8R<`)xt5b+$jWPe{wmfCUgbW{KcSfg``hM+s<l6Rz}9jrOcqxb-3@T z2L%~8p<<MZpxAW`bo32`l$w;aH^I4nw7uzp+1_*lmG+QYz!8+N!R={RaJw-ORLVix zLB60;6utDy1eIRN<xVc3TtGs5IvA?Y8PvW>2IUe^dk?uC?F_CJ${gL2L8WFfs8kIC zwU6B+L8UafmWXn6a&z=Z2jw1DkU1$Jc~EMC*0OGnPDP;H8d&aB2`Wt??R&7lAnkRi zIv0>S_fV++K&3RukU&TOKu2Q`%MDrzC70vthk*MV#MuWb^<e!SkiW~Fa`Zs}T*i=4 z`hiNpVOaWcF)%Rj@Cz{Tzu>>Ye}aDl|8)L3{$l=k{!o4gehq$sA>ZX6^}uKdjE2By z2#kinXb6mkz-S1JhQMeDjE2By2#kinXb4~d;>^a3<@rU~nR)3cnMGC>+9kmu9vL3o zXyRs`K9>5qx!%ko%({#vsksF?i6yDU@fj&$nW^QRoXnD(#mO0|xrxHe+Kff1g{7&* zB`{ewE@nx_g7S>S;tVDUW>d!8^7!=B{M^)%qDr`RJm?ZI`&dBk$W6>kOivBT&rZ#Q z8Op`atjw65S_$K`g80crIWRs4NMCYlQAuW6W-^jf*+Kn(d43ND{y+TR_&@N!;(x+_ zkN*b$CH^z~$M_HM@8aLWzm9(e|04c5{L}a+@OSaI@YnHI@E7st@Tc)7@JI27@cZ$5 zU<t@kq0tZ+4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5EzCbz{<?XC@&8p<>Wx5 ztSpF>kpYp?(jZbw3Peguf=CGo5GgJWBE`f&q^Kx}6cGWD!ona@NC-p<3W7)h0T9X0 z4<h;aKqN0Oh~(h`k=)!Ml8XyOa&m%54h|5>&JH5k*gzyJD~M!a0g=qiAd-oRnVFLl z)c<GUf62iAoBu2Sd;XWhFlt7<G#Ub<Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF z0wX5`KwW+*@F0K~co0B{iG`VwQvlNczstb?o&O#GQ~tXnCqPDhIvN6_Aut*OqaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0>dN(*qK>4Gqc@paxk+ndUTo}W&ts@qxaXdf*7*f zcjPib`v0Tz|HCB4N4+r`0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFw#Q+&-_2b z=qZ0AJ#~!we>4O}Ltr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhnjhX82)f3*KU%p-Z! zd!r#R8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd70QJ_JDh|IzdRMtm|D4S>-Q7!85Z z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C;SvI%_5bqV%K_xTmjlSMgU<gGg!KQx=l{Lu ze>Qsl-*AcUQGbkvz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjGzzzo${9({;P@u z#7MU96XFD&2<R|piV#S^{sQMpcBKCQ==uL6C~1s(bu<J<Ltr!nMnhmU1V%$(Gz3ON zU^E0qLtr!nMnhm2g#f6xk9__=C#c&GI{zO$AOJf5AKL#PJ^z0g#rmjMMnhmU1V%$( zGz3ONU^E0qLtr!nMnhmU1V%$(Gz3O+2!PiAOMzGZi-C6m2!YrC3xMYTN6-Ho$q8fB z@1r3w8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd70QAp}PI|05xmNBuY&0;3@?8Umvs zFd71*Aut*OqaiRF0;3@?8UmvsFw#Q+)c+qn|9_;Xf>HmEhQMeDjE2By2#kinXb6mk zz-S1JhQMeDjE2By2n?GL0ImNYJ^z2$MCYhSMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU z1V%$(Gz3ON03HIM<Niv5{>}!U`{!RiSB3+0BB0X&^)Db9t@6GJ(DVQ9GVuT4AHDw% z9&n?K(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7(yWc>g9uO`vdp?K@9M@ z{~!iCXdnQ@;N}0pAjYh~z@N^4oUfDjBCkG=0rxDfGhCXSCLHGMk!+o;?^$QFMzZ{5 znaN_x{F1qXS%GN>QwZZ9#ubbqj64iS7z*%(h?^{%xT-i~d}dxsYDH#zGXD>@m%8GN z`7nNJQAu%pW^r+RMq+VBGKeSd9OUX4;;P{3=i(ZnkQomagey_-_fr6iC}_ZRX`<T! zG6i9t99Hu{)*+b%;%d6dpt==oPG(7JF4#g@tmc5Ek<0;cHG`zt#I<D^v!Q-0N-Zo+ zEiQq05yp{0GYuvVb~ngCn1F%?*lj^l*v$l42vaJJ%S@0WR5L*$nqiV`;=1zixTr8S zuq-YuNG*yl$WE<<^Q6#Bg-d{yfsBQVC}@CmY9>jriJQtZ)<gXdmyXX)tpxiIE+UE3 zY?x9s^I^i8Y2xhS=JJe<%ovswmnLPQ+9H9|7Pwk8YvAIVVPZJK2o!>Fe~9C>0i+Dg zaFCE@z9_r6r8Z+DJJkIp`Pr#?@wutV8HstB#kuhyMQCDTXqKQ!gSCLHLK9ce0GXxf zCBi1IF3FgTY+o^04_JM%C^pj}3gCtoL(NJOW)nA7WvqspRZx^!mROPsie88YWC0O0 zbCKo1)`Lt(7KGXnC&VUhsLWUnv!gUACo>sh1t>!lAo#-QHXx+H=>Tj2LJXRr;skM; z4+<|N^M&x34^oO@K1fj0L4ZwMQJgUx>VA+|aeQV9m=;7c5iA&=nF2Bi%vR9IOwkPD zN6GTVsU;<udFjQVFo=h71kg-^iGvk^jDra%Xn?YgW}`SCySThOV`FVeVp2|ONosCE zPGU)FF`U5<H88}{$;VXzE)0nj1y8>aS9jMS9fh*gqT<Z_JcIyDr9zlvkh6zlkcNeU zfq|xuf}4MktEao4g12iV#0*V^AXhinAXh(U*I)&NXEhsrdD+F4l^L57!7eLGEz3_% zEXmBzD@J1Sp|}o7LO~-r(K7|%oZ{4?%)}hHW6Vr6brez(OHviUZZkC1)KSRHD@)8l z6H6}2@ykb;Qk0rloS)~ES%MHk@ejyOoc@XCVHXz_Wo(uN`zN_5rx=8JQG5UrfdmV} z22koo@bXG?5gb^Jhays%T7=*y7a=@NVho_iRdI1?Y7tJ~RdIvUQL{7HcZsDX8Tmz- zC6#an4~jqG!swobCmVRmN-oNAttiMWLXIl5Xh|;0aY?K!M)*1<FCafBGr1BT--ZT8 zpcqGqEKpj*;T<%u!yJV}wPs@x7rVH)I3v{a;MM_{;70K@SP0$2sIiL~q1X~`CO9e( z-c3$KVy70Bz`ae=7+2tA7nhY~Y!U{?IIPV9qq$JL4im-i`{K;>yi}x23)MxgcQhNl zIlzgsDHZHQc<l^laH2R8E{yI<c<qk}W>C8Z!2=bgs1ZqKN&^{-GnEOmvx{qMGd9M8 zeFLtg5e)=1E(eOw&?M3Q2XAE{d_=7KH5+T#*u^C!8JmL<t||uGSImy-255r;VNY^m zQA&JnVqR%lVsc4oQECx9vcW|(SQ=Xv088ZNr=%i^H-v_q#3Xd_;+*`Fcr4=iNm;4M zC7`M{3|dctjUnFq@~rIQs;Z1lj9~90w_A|eY$!p2EQ1~w`Q>>5iN#1|8B{SmTu98* znvJF`kb2Y*;zC5j2dPQJit0Xu8g%ECR2D!BViQdr1=KX3lZsUTD?v<GBH!K7%#cD= z6zpzLX<ZB^SWw&w7ShOsml_HIL7u*jL6M*ahK@pBVs0wj1%^fznmP(#AHZvu;{4L0 z<Wxj@M6dtzb8}Pk5Cy7{feFZr;*!MN0+=QRKmQN~zfd0^1s7L0$55XT1p^%gP{IuM zb@cJ^^b5hFKr@aJTzEF}gFOdpl)-2w6feR=Ax$<&i^a%5Qz6vPGceRuN1-e+rxf8! zaQe{HXJQj~mStoBw>FClb23X(;}c6uAl+<uYcbvsW;Qbe0|N)B-wxUTzm|dj4gYoi zL;Pz&VxxF81V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtp?yK!jPB(bUw< z#M#iq+|9_y+}zC3nG+;vY;0m|X<%vQ;_U2X?rh@54iYpnaC35UGd6TJH8nSKv^3%n zX4d62FmiM<H83!7ay2)1bhI?$<vz|J$*_xoJD%$|*J3Vz&flDyIkP#%IZkp^b6B!J zWS`3($<E2PpUs2y1M5=e5{6xTCwSlReB_B6z;FOt-D<AQE~===(PdkfnOY9Qkfj0$ z7Iai4%+obo0U@g37_1QN>f`Dh0-1i&%S_RMvOvQ}Fg9r12*w7F5;;PqtKvZ%m;_`v z3C2r?j2`JIz(<z#Km)uwkOd2R&~Z)2U<f}R!iUL12KiyU<U}|twWvf#0X~7E2b-Kg z7K6{3pb7frgFFk;8=qX1lb4Ss4Vpwj7J^Nq=qMn~tU;ZPDh3GyWL5ClG*pG)nHy9g z#H5;AkiRb^EEIfP-9i++{5}03F#(#n1W%vnfyVn3Y$2k0nJGvL;eiZN4ClZ!An8V! z4GIbHG!;k-oP$>jk{>~ukhprF**^tahzIl_(Wl_(=Yl2h;Hn@|-lC_)E~=}`(IE^< zl^`4s89fEf+7_epF;X#-T2S;7nU+CHL4g^Mp0Hu57e`t~vP}=9RUxrh0W|*sV(Ta% z%jTr!p$fppgmo04gW6#K=|P9Qbrc}e26~XOeWW=7R2fK^p^AZL0#Jp(gZ*$J#P~m4 z2r={zPIpKyM@m$n5Gn>mG?FwdeSqaq(;%|Hz`BrDLcp|Pn1o1=kN^N{L=3^h^g$%S zJWowFadmO{+6}Nn;=zN`V5SZ<iNID&fdwJ*AhW?-1r4xz%`gp=^(?T`1hQ@e&eKLS z5iS8=u>lu>%ou2vs<VsRD>F8Vf=8e;<B>8-JSd|;OFJZCEi^ljq>y!he1IecndsM1 zfTRjd4>dM%by0Z8facRdOT|i4i$F|GG%G-2P-&2{ATD?r8EB&0PnAtvTNJ)%3nT|p z3SL11;%MM73#<UeG_Z)KlM0)-vM6ITG(12?fF(c-b!=vVCs#nL+lq3Ep=(r}lrhZ! z#U{uMHEd>pB$3=wlA5a-ri2pV@KO&PlW?9YnrUzeuriR5a1m&PJ1C;8ZvmIL@yUr` zS_RECuwZ<0BFG#t8x)J0J_>B&n&OP<un>YQw*$|0gB2-bH3eGGf&vPp0Um!o@>ooR zq!O@cidap9C_r)-L_jl0j!k@YnPN%t=rTpng2=(YOp$?sVLH~OoS+f`-Z-NBGQ~y# zeRfe*RgT7VP^$)n<Dpe1G8>vR5$$xS8c>r3+PZ<X%wgh?3LL4fMQb{OJY5W`sclhP z9w70?3O#mFO-+tweUKACI38Y?q4F@C1y_gUFp!ZTt6;4th(jTwkR}p@4QVk$*f?5R zaO3r$tLt<S>+j®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%0Afuo^gxktWnp?`UKVPbG@ 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 FLjcBxr0W0x diff --git a/pom.xml b/pom.xml index 82a9b76..dbe2997 100644 --- a/pom.xml +++ b/pom.xml @@ -461,215 +461,6 @@ </build> <profiles> - <profile> - <!-- to build the xta-test-server.zip --> - <!-- > mvn clean package -Pzip --> - <activation> - <activeByDefault>false</activeByDefault> - </activation> - <id>zip</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-assembly-plugin</artifactId> - <configuration> - <finalName> - ${project.artifactId}-${project.version}_${maven.build.timestamp} - </finalName> - <appendAssemblyId>false</appendAssemblyId> - <descriptors> - <descriptor>${basedir}/build/assembly.xml</descriptor> - </descriptors> - <skipAssembly>false</skipAssembly> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>single</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - - <profile> - <activation> - <activeByDefault>false</activeByDefault> - </activation> - <id>plantuml</id> - <build> - <plugins> - <plugin> - <groupId>com.github.jeluard</groupId> - <artifactId>plantuml-maven-plugin</artifactId> - <version>1.2</version> - - <executions> - <execution> - <id>puml</id> - <phase>generate-resources</phase> - <goals> - <goal>generate</goal> - </goals> - - <configuration> - <sourceFiles> - <directory>${basedir}</directory> - <includes> - <include>**/*.puml</include> - </includes> - </sourceFiles> - <outputInSourceDirectory>true</outputInSourceDirectory> - <format>svg</format> - <charset>UTF-8</charset> - <verbose>true</verbose> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>net.sourceforge.plantuml</groupId> - <artifactId>plantuml</artifactId> - <version>1.2022.1</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> - </profile> - - <profile> - <activation> - <activeByDefault>false</activeByDefault> - </activation> - <id>asciidoctor</id> - <build> - <plugins> - <plugin> - <!-- - https://github.com/asciidoctor/asciidoctor-maven-examples/blob/main/asciidoc-to-html-example/pom.xml --> - <!-- - https://github.com/asciidoctor/asciidoctor-maven-examples/blob/main/asciidoctor-pdf-example/pom.xml --> - <groupId>org.asciidoctor</groupId> - <artifactId>asciidoctor-maven-plugin</artifactId> - <version>${asciidoctor.maven.plugin.version}</version> - <dependencies> - <!-- Comment this section to use the default jruby - artifact provided by the plugin --> - <dependency> - <groupId>org.jruby</groupId> - <artifactId>jruby-complete</artifactId> - <version>${jruby.version}</version> - </dependency> - <!-- Comment this section to use the default - AsciidoctorJ artifact provided by the plugin --> - <dependency> - <groupId>org.asciidoctor</groupId> - <artifactId>asciidoctorj</artifactId> - <version>${asciidoctorj.version}</version> - </dependency> - <dependency> - <groupId>org.asciidoctor</groupId> - <artifactId>asciidoctorj-pdf</artifactId> - <version>${asciidoctorj.pdf.version}</version> - </dependency> - <dependency> - <groupId>org.asciidoctor</groupId> - <artifactId>asciidoctorj-diagram</artifactId> - <version>${asciidoctorj.diagram.version}</version> - </dependency> - - <dependency> - <groupId>org.asciidoctor</groupId> - <artifactId>asciidoctorj-diagram-ditaamini</artifactId> - <version>1.0.0</version> - </dependency> - </dependencies> - <configuration> - <requires> - <require>asciidoctor-diagram</require> - </requires> - </configuration> - <executions> - - <execution> - <id>convert-to-html</id> - <phase>generate-resources</phase> - <goals> - <goal>process-asciidoc</goal> - </goals> - <configuration> - <sourceDirectory>doc</sourceDirectory> - <outputDirectory>${project.build.directory}/html</outputDirectory> - <backend>html5</backend> - <preserveDirectories>true</preserveDirectories> - <attributes> - <source-highlighter>coderay</source-highlighter> - <imagesdir>.</imagesdir> - <toc>left</toc> - <icons>font</icons> - <sectanchors>true</sectanchors> - </attributes> - </configuration> - </execution> - <execution> - <id>generate-pdf-doc</id> - <phase>generate-resources</phase> - <goals> - <goal>process-asciidoc</goal> - </goals> - <configuration> - <sourceDirectory>doc</sourceDirectory> - <outputDirectory>${project.build.directory}/pdf</outputDirectory> - <backend>pdf</backend> - <preserveDirectories>true</preserveDirectories> - <attributes> - <pdf-theme>kosit</pdf-theme> - <pdf-themesdir>${project.basedir}/doc/theme</pdf-themesdir> - <source-highlighter>coderay</source-highlighter> - <icons>font</icons> - <pagenums/> - <toc/> - <idprefix/> - <idseparator>-</idseparator> - <compress/> - </attributes> - </configuration> - </execution> - <execution> - <id>generate-soapui-pdf</id> - <phase>generate-resources</phase> - <goals> - <goal>process-asciidoc</goal> - </goals> - <configuration> - <sourceDirectory>soapui</sourceDirectory> - <outputDirectory>${project.build.directory}/soapui</outputDirectory> - <backend>pdf</backend> - <preserveDirectories>true</preserveDirectories> - <attributes> - <pdf-theme>kosit</pdf-theme> - <pdf-themesdir>${project.basedir}/doc/theme</pdf-themesdir> - <source-highlighter>coderay</source-highlighter> - <icons>font</icons> - <pagenums/> - <toc/> - <idprefix/> - <idseparator>-</idseparator> - <compress/> - </attributes> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <!-- Deployment Profiles --> <profile> <id>gitlab-deploy</id> diff --git a/run_helm_test.sh b/run_helm_test.sh deleted file mode 100755 index aafe0e7..0000000 --- a/run_helm_test.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -e - -helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml -helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ -cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . - diff --git a/script/push-docker-image.sh b/script/push-docker-image.sh deleted file mode 100644 index d118b47..0000000 --- a/script/push-docker-image.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -set -e - -NEW_TAG="$1" -POM_VERSION="$2" -DOCKER_REGISTRY="docker.ozg-sh.de" -IMAGE_NAME="xta-test-server" - -if [ -z "$DOCKER_USER" ]; then - echo "Error: USER environment variable must be set" - exit 1 -fi -if [ -z "$DOCKER_PASSWORD" ]; then - echo "Error: PASSWORD environment variable must be set" - exit 1 -fi -if [ -z "$BRANCH_NAME" ]; then - echo "Error: BRANCH_NAME environment variable must be set" - exit 1 -fi - -echo "BRANCH_NAME: ${BRANCH_NAME}" - -echo "Log into Docker..." -echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USER" --password-stdin - -echo "Tag Docker image..." -docker tag "${DOCKER_REGISTRY}/${IMAGE_NAME}:${POM_VERSION}" "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}" - -echo "Push Docker image..." -docker push "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}" - -echo "Docker image pushed successfully: ${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}" \ No newline at end of file diff --git a/src/main/helm/test-values.yaml b/src/main/helm/test-values.yaml deleted file mode 100644 index a40b96d..0000000 --- a/src/main/helm/test-values.yaml +++ /dev/null @@ -1,20 +0,0 @@ -replicaCount: 1 - -image: - repo: docker.ozg-sh.de - name: xta-test-server - tag: latest - -imagePullSecret: ozgcloud-image-pull-secret - -env: - overrideSpringProfiles: abc, test - -baseUrl: test.by.ozg-cloud.de - -ozgcloud: - bezeichner: xta-test-serverr - -networkPolicy: - disabled: false - dnsServerNamespace: openshift-dns \ No newline at end of file -- GitLab From 8b81c98d4c2665ca98cd282f6378b1e00a9e325d Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 11:48:31 +0100 Subject: [PATCH 17/56] #2 OZG-7121 pipeline: Add helm unittest plugin --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c2f8943..01c11d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,6 +39,7 @@ test-helm: stage: test before_script: - apk add --no-cache helm + - helm plugin install https://github.com/helm-unittest/helm-unittest.git script: - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ -- GitLab From 802295a14cd3b58f22a97e6703f87ff1dd4cb7f4 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 12:04:32 +0100 Subject: [PATCH 18/56] #2 OZG-7121 pipeline: Add git to helm jobs --- .gitlab-ci.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 01c11d6..83e5796 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,11 +35,14 @@ test: script: - mvn test $MAVEN_CLI_OPTS -test-helm: - stage: test +.helm: before_script: - - apk add --no-cache helm + - apk add --no-cache helm git - helm plugin install https://github.com/helm-unittest/helm-unittest.git + +test-helm: + stage: test + extends: .helm script: - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ @@ -80,9 +83,9 @@ push-merge-request-image-nexus: push-merge-request-helm-nexus: stage: publish - extends: .get-version - before_script: - - apk add --no-cache helm + extends: + - .get-version + - .helm script: - cd src/main/helm && helm package --version=MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION} rules: -- GitLab From 846107f012d737b803cf21afa7f4c66c1974cfff Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 12:18:31 +0100 Subject: [PATCH 19/56] #2 OZG-7121 pipeline: Post helm package to nexus --- .gitlab-ci.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 83e5796..677374b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,12 +37,13 @@ test: .helm: before_script: - - apk add --no-cache helm git - - helm plugin install https://github.com/helm-unittest/helm-unittest.git + - apk add --no-cache helm git curl test-helm: stage: test extends: .helm + before_script: + - helm plugin install https://github.com/helm-unittest/helm-unittest.git script: - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ @@ -87,7 +88,8 @@ push-merge-request-helm-nexus: - .get-version - .helm script: - - cd src/main/helm && helm package --version=MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION} + - helm package src/main/helm --version=MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION} + - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@${PROJECT_ARTIFACTID}-MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}.tgz rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: manual -- GitLab From 0234f1bd496b27e73e0e6d48efc7bbaf80384dfa Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 12:45:46 +0100 Subject: [PATCH 20/56] #2 OZG-7121 pipeline: Use semver https://semver.org/#spec-item-9 --- .gitlab-ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 677374b..41f5b43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -66,7 +66,7 @@ push-merge-request-image-gitlab: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -76,7 +76,7 @@ push-merge-request-image-nexus: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -88,7 +88,7 @@ push-merge-request-helm-nexus: - .get-version - .helm script: - - helm package src/main/helm --version=MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION} + - helm package --version=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID} src/main/helm - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@${PROJECT_ARTIFACTID}-MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}.tgz rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -99,7 +99,7 @@ push-snapshot-image-gitlab: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:main-${PROJECT_VERSION},${CI_REGISTRY_IMAGE}:snapshot-latest" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS # only: # - main @@ -110,7 +110,7 @@ push-snapshot-image-nexus: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:main-${PROJECT_VERSION},${NEXUS_IMAGE_PREFIX}:snapshot-latest" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS only: - main @@ -121,7 +121,7 @@ push-release-image-gitlab: extends: .get-version script: - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:release-${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:latest" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}-release,${CI_REGISTRY_IMAGE}:latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG @@ -132,7 +132,7 @@ push-release-image-nexus: extends: .get-version script: - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:release-${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:latest" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG}-release,${NEXUS_IMAGE_PREFIX}:latest" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG -- GitLab From 90522aac1121458365cfb6676d8f0954bab97fc4 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 12:51:03 +0100 Subject: [PATCH 21/56] #2 OZG-7121 pipeline: Adjust helm unittest install --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 41f5b43..f57a9bb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,9 +42,8 @@ test: test-helm: stage: test extends: .helm - before_script: - - helm plugin install https://github.com/helm-unittest/helm-unittest.git script: + - helm plugin install https://github.com/helm-unittest/helm-unittest.git - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ - cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . -- GitLab From 9159b3f7bd357f8069d833067787db9c3b3fd239 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 13:06:32 +0100 Subject: [PATCH 22/56] #2 OZG-7121 pipeline: Use references for helm --- .gitlab-ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f57a9bb..75486c2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -41,9 +41,10 @@ test: test-helm: stage: test - extends: .helm - script: + before_script: + - !reference [ .helm, before_script ] - helm plugin install https://github.com/helm-unittest/helm-unittest.git + script: - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ - cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . @@ -96,7 +97,9 @@ push-merge-request-helm-nexus: # Snapshot jobs push-snapshot-image-gitlab: stage: publish - extends: .get-version + before_script: + - !reference [.get-version, before_script] + - !reference [.helm, before_script] script: - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS -- GitLab From 6eb928abb6dd773a5013fac3bea37f9e4a3d8f08 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 13:12:25 +0100 Subject: [PATCH 23/56] #2 OZG-7121 pipeline: Adjust references for helm --- .gitlab-ci.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 75486c2..df7fe3e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,9 +84,9 @@ push-merge-request-image-nexus: push-merge-request-helm-nexus: stage: publish - extends: - - .get-version - - .helm + before_script: + - !reference [.get-version, before_script] + - !reference [.helm, before_script] script: - helm package --version=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID} src/main/helm - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@${PROJECT_ARTIFACTID}-MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}.tgz @@ -97,9 +97,7 @@ push-merge-request-helm-nexus: # Snapshot jobs push-snapshot-image-gitlab: stage: publish - before_script: - - !reference [.get-version, before_script] - - !reference [.helm, before_script] + extends: .get-version script: - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS -- GitLab From c1e491a1b5b477fa00c052b5fd41efa3b22b0cef Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 13:16:26 +0100 Subject: [PATCH 24/56] #2 OZG-7121 pipeline: Unify test-helm --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index df7fe3e..846434d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -45,9 +45,9 @@ test-helm: - !reference [ .helm, before_script ] - helm plugin install https://github.com/helm-unittest/helm-unittest.git script: - - helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml - - helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ - - cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . + - helm template -f src/test/helm-linter-values.yaml src/main/helm + - helm lint -f src/test/helm-linter-values.yaml src/main/helm + - helm unittest -f '../../test/helm/**/*test.yaml' src/main/helm verify: stage: test -- GitLab From ed47268168120f231bd536438d80551307bb1ea8 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 13:20:56 +0100 Subject: [PATCH 25/56] #2 OZG-7121 pipeline: Adjust helm-chart version --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 846434d..1258f12 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,8 +88,9 @@ push-merge-request-helm-nexus: - !reference [.get-version, before_script] - !reference [.helm, before_script] script: - - helm package --version=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID} src/main/helm - - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@${PROJECT_ARTIFACTID}-MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}.tgz + - export HELM_CHART_VERSION=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID} + - helm package --version=${HELM_CHART_VERSION} src/main/helm + - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@${PROJECT_ARTIFACTID}-${HELM_CHART_VERSION}.tgz rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: manual -- GitLab From cba171929f3fcf5b2e620d50f8c1699cdc9a3393 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 13:39:43 +0100 Subject: [PATCH 26/56] #2 OZG-7121 Remove asciidoc Readme --- README.adoc | 94 ----------------------------------------------------- README.md | 3 ++ 2 files changed, 3 insertions(+), 94 deletions(-) delete mode 100644 README.adoc create mode 100644 README.md diff --git a/README.adoc b/README.adoc deleted file mode 100644 index bb8a831..0000000 --- a/README.adoc +++ /dev/null @@ -1,94 +0,0 @@ -:toc: -:toc-title: Inhalt -:toclevels: 3 - -## Build - -.Bauen des Projektes -[source,bash] ----- -$ mvn clean package ----- - -.Bauen des Projektes mit einem Profil -[source,bash] ----- -$ mvn clean package -P <Profilename> ----- - -Profile werden immer in der Reihenfolge angewendet, in welcher Sie angegeben wurden. - -.Verfügbare Profilnamen -- "zip" - Erstellen von einer Zip-Datei mit allem Projektinhalten -- "plantuml" - Umwandeln der *.puml-Grafiken in das SVG-Format zum Einbetten in die Dokumentation -- "asciidoctor" - Erstellen der Dokumentation im Format HTML und PDF - -.Beispiel -[source,bash] ----- -$ mvn clean package -P plantuml,asciidoctor ----- - -## Release-Erstellung - -Eine Konsole im Projektverzeichnis öffnen und in den develop Branch wechseln. - -[source,bash] -``` -$ git checkout develop -``` - -Branch aktualisieren. -[source,bash] -``` -$ git pull -``` - -Release beginnen. In der Konsole wird die nächste Releaseversion abgefragt. -**Wichtig: Es dürfen keine Release-Branches (origin/release/...) mehr offen sein, -anderenfalls kann kein neues Release gestartet werden. Weiterhin dürfen keine unveröffentlichten Änderungen im Projekt vorhanden sein.** - -[source,bash] -``` -$ mvn clean package gitflow:release-start -``` -In diesem Schritt wird ein Release-Branch erzeugt. In diesem können bei Bedarf letzte Änderungen durchgeführt werden. - -**Wichtig:** Es soll kein Push zurück ins Repository erfolgen, die Änderungen werden nur via Commit ins Repository übertragen. -Release abschließen ohne Deployment. Das Deployment übernimmt GitLab. - -[source,bash] -``` -$ mvn gitflow:release-finish -``` - - -== ASCIIDOC - -Für die Projektdokumentation wird ASCIIDOC verwendet. ASCIIDOC bietet viel mehr -Möglichkeiten bei der Dokumentation als Markdown. - -=== Editor - -Es gibt die verschiedensten Editoren für ASCIIDOC Dateien -(siehe https://docs.asciidoctor.org/asciidoctor/latest/tooling/[Link]). Der Eclipse -ASCIDOC Editor hat Probleme SVG Dateien korrekt im Preview anzuzeigen. Der Editor für -Visual Studio Code hat diese Probleme nicht. - -== PlantUML - -Für die Erstellung von Klassendiagrammen und Sequenzdiagrammen wird -https://plantuml.com[PlantUML] verwendet. Die Diagramme werden in die ASCIIDOC Dokumente -als SVG Grafik eingebunden. Dies ist wichtig, da anderenfalls die Diagramme im GitLab -Projekt nicht dargestellt werden. Das Rendern von PlantUML Diagrammen ist im GitLab nicht -aktiviert. - -=== Umwandeln in eine SVG Grafik - -Die Umwandlung in SVG erfolgt durch den Build mit dem Profil "asciidoctor". - -[source,bash] ----- -$ mvn clean package -Pasciidoctor ----- - diff --git a/README.md b/README.md new file mode 100644 index 0000000..a6ee46c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# XTA-Test-Server + +Ein XTA-Server ohne Nutzer-Zugriffsbeschränkung für integrative Test-Umgebungen \ No newline at end of file -- GitLab From 23f8977f5beb7086ec79a30fc4877c0799db7189 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 14:03:17 +0100 Subject: [PATCH 27/56] #2 OZG-7121 pipeline: Add more docker tags --- .gitlab-ci.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1258f12..5e9c774 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -54,7 +54,6 @@ verify: script: - mvn verify $MAVEN_CLI_OPTS - .get-version: before_script: - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS) @@ -66,7 +65,7 @@ push-merge-request-image-gitlab: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID},${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}+${CI_COMMIT_SHORT_SHA}" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -76,7 +75,7 @@ push-merge-request-image-nexus: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID},${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}+${CI_COMMIT_SHORT_SHA}" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -100,7 +99,7 @@ push-snapshot-image-gitlab: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main,${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS # only: # - main @@ -111,7 +110,7 @@ push-snapshot-image-nexus: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main,${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS only: - main @@ -122,7 +121,7 @@ push-release-image-gitlab: extends: .get-version script: - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}-release,${CI_REGISTRY_IMAGE}:latest" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}-release,${CI_REGISTRY_IMAGE}:latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG @@ -133,7 +132,7 @@ push-release-image-nexus: extends: .get-version script: - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG}-release,${NEXUS_IMAGE_PREFIX}:latest" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG}-release,${NEXUS_IMAGE_PREFIX}:latest" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG -- GitLab From e9882ee547416bcfbce6d62bbb55a8acee43fd1f Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 14:03:49 +0100 Subject: [PATCH 28/56] #2 OZG-7121 pipeline: Package jar instead of just compile --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e9c774..a1075e1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,10 +22,10 @@ stages: - test - publish -build: +package: stage: build script: - - mvn clean compile $MAVEN_CLI_OPTS + - mvn clean package -DskipTests=true $MAVEN_CLI_OPTS artifacts: paths: - target/*.jar -- GitLab From 1d07b1a84a597b8be2c01f80d3d4365a5f56358b Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 14:11:37 +0100 Subject: [PATCH 29/56] #2 OZG-7121 pipeline: Use hyphen instead of plus --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a1075e1..574c0ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -65,7 +65,7 @@ push-merge-request-image-gitlab: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID},${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}+${CI_COMMIT_SHORT_SHA}" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID},${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}-${CI_COMMIT_SHORT_SHA}" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -75,7 +75,7 @@ push-merge-request-image-nexus: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID},${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}+${CI_COMMIT_SHORT_SHA}" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID},${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}-${CI_COMMIT_SHORT_SHA}" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -99,7 +99,7 @@ push-snapshot-image-gitlab: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main,${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main,${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main-${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS # only: # - main @@ -110,7 +110,7 @@ push-snapshot-image-nexus: stage: publish extends: .get-version script: - - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main,${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main+${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest" + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main,${NEXUS_IMAGE_PREFIX}:${PROJECT_VERSION}-main-${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS only: - main -- GitLab From efc8aa07a53666a88ea7f762bfd6b557e915da8c Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 10 Dec 2024 16:55:35 +0100 Subject: [PATCH 30/56] #2 OZG-7121 helm: Use namespace-ca-issuer --- .gitlab-ci.yml | 10 ++++++++-- src/main/helm/templates/certificate.yaml | 5 ++--- src/main/helm/templates/selfsigned_cluster_issuer.yaml | 9 --------- 3 files changed, 10 insertions(+), 14 deletions(-) delete mode 100644 src/main/helm/templates/selfsigned_cluster_issuer.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 574c0ce..c9705af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,6 +38,9 @@ test: .helm: before_script: - apk add --no-cache helm git curl + script: + - helm package --version=${HELM_CHART_VERSION} src/main/helm + - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=${NEXUS_HELM_REPO_NAME} -F file=@${PROJECT_ARTIFACTID}-${HELM_CHART_VERSION}.tgz test-helm: stage: test @@ -83,13 +86,16 @@ push-merge-request-image-nexus: push-merge-request-helm-nexus: stage: publish + variables: + NEXUS_HELM_REPO_NAME: ozg-base-apps-snapshot before_script: - !reference [.get-version, before_script] - !reference [.helm, before_script] script: - export HELM_CHART_VERSION=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID} - - helm package --version=${HELM_CHART_VERSION} src/main/helm - - curl -u ${NEXUS_USER}:${NEXUS_PASSWORD} https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@${PROJECT_ARTIFACTID}-${HELM_CHART_VERSION}.tgz + - !reference [.helm, script] + - export HELM_CHART_VERSION=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}-${CI_COMMIT_SHORT_SHA} + - !reference [.helm, script] rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: manual diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml index 8d1bf81..434f8b4 100644 --- a/src/main/helm/templates/certificate.yaml +++ b/src/main/helm/templates/certificate.yaml @@ -12,9 +12,8 @@ spec: algorithm: ECDSA size: 256 issuerRef: - name: xta-test-cluster-issuer - kind: ClusterIssuer - group: cert-manager.io + name: {{ include "app.namespace" . }}-ca-issuer + kind: Issuer duration: 8760h0m0s # 1 Jahr renewBefore: 5840h0m0s # 8 Monate commonName: {{ .Release.Name }} diff --git a/src/main/helm/templates/selfsigned_cluster_issuer.yaml b/src/main/helm/templates/selfsigned_cluster_issuer.yaml deleted file mode 100644 index a988ee3..0000000 --- a/src/main/helm/templates/selfsigned_cluster_issuer.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: xta-test-cluster-issuer - namespace: {{ include "app.namespace" . }} - labels: - {{- include "app.defaultLabels" . | indent 4 }} -spec: - selfSigned: {} \ No newline at end of file -- GitLab From e81401fae9fa6c4307ad963ef4f35edda15aa731 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Thu, 12 Dec 2024 09:38:40 +0100 Subject: [PATCH 31/56] #2 OZG-7121 helm: Configure keystore and truststore in deployment --- .gitlab-ci.yml | 4 +-- run_helm_test.sh | 6 ++++ src/main/helm/templates/deployment.yaml | 22 ++++++--------- src/test/helm/deployment_env_test.yaml | 33 ++++++++++++++++++++++ src/test/helm/deployment_volumes_test.yaml | 20 ++++++++++++- 5 files changed, 67 insertions(+), 18 deletions(-) create mode 100755 run_helm_test.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c9705af..8bdd507 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,9 +48,7 @@ test-helm: - !reference [ .helm, before_script ] - helm plugin install https://github.com/helm-unittest/helm-unittest.git script: - - helm template -f src/test/helm-linter-values.yaml src/main/helm - - helm lint -f src/test/helm-linter-values.yaml src/main/helm - - helm unittest -f '../../test/helm/**/*test.yaml' src/main/helm + - sh run_helm_test.sh verify: stage: test diff --git a/run_helm_test.sh b/run_helm_test.sh new file mode 100755 index 0000000..0cd9af6 --- /dev/null +++ b/run_helm_test.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +helm template -f src/test/helm-linter-values.yaml src/main/helm +helm lint -f src/test/helm-linter-values.yaml src/main/helm +helm unittest -f '../../test/helm/**/*test.yaml' src/main/helm \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index f0f5101..a1d4ea7 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -61,7 +61,10 @@ spec: - env: - name: spring_profiles_active value: {{ include "app.envSpringProfiles" . }} - + - name: server_ssl_key-store + value: /store/keystore.jks + - name: server_ssl_trust-store + value: /store/truststore.jks {{- with include "app.getCustomList" . }} {{ . | indent 10 }} {{- end }} @@ -119,25 +122,16 @@ spec: volumeMounts: - name: temp-dir mountPath: "/tmp" - - name: bindings - mountPath: "/bindings/ca-certificates/type" - subPath: type - readOnly: true - - name: mongodb-root-ca - mountPath: "/bindings/ca-certificates/mongodb-root-ca.pem" - subPath: ca.crt + - name: xta-test-server-tls-store + mountPath: "/store/" readOnly: true volumes: - name: temp-dir emptyDir: {} - - name: bindings - configMap: - name: xta-test-server-bindings-type - - name: mongodb-root-ca + - name: xta-test-server-tls-store secret: - secretName: {{ ((.Values.database).tls).secretName | default "ozg-mongodb-tls-cert" }} - optional: true + secretName: {{ .Release.Name }}-tls-secret dnsConfig: {} dnsPolicy: ClusterFirst {{- with .Values.hostAliases }} diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index b3f06bc..52c9484 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -29,6 +29,39 @@ release: namespace: sh-helm-test tests: + - it: should set spring profiles + set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: spring_profiles_active + value: oc, dev + - it: should set keystore + set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: server_ssl_key-store + value: /store/keystore.jks + - it: should set truststore + set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: server_ssl_trust-store + value: /store/truststore.jks - it: check customList as list set: env.customList: diff --git a/src/test/helm/deployment_volumes_test.yaml b/src/test/helm/deployment_volumes_test.yaml index 9183af6..9f998f3 100644 --- a/src/test/helm/deployment_volumes_test.yaml +++ b/src/test/helm/deployment_volumes_test.yaml @@ -23,4 +23,22 @@ tests: path: spec.template.spec.volumes content: name: temp-dir - emptyDir: {} \ No newline at end of file + emptyDir: {} + + - it: should have tls store volume + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: xta-test-server-tls-store + secret: + secretName: helm-test-tls-secret + + - it: should have truststore volume mount + asserts: + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: xta-test-server-tls-store + mountPath: "/store/" + readOnly: true \ No newline at end of file -- GitLab From 5ea265ffdf95ebef93b050e86d4deee749b7c1e5 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Thu, 12 Dec 2024 09:58:48 +0100 Subject: [PATCH 32/56] #2 OZG-7121 helm: Configure ingress with same secret as in cluster --- src/main/helm/templates/ingress.yaml | 18 ++++----------- src/test/helm/ingress_test.yaml | 34 +++++++++------------------- 2 files changed, 15 insertions(+), 37 deletions(-) diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index e029f52..30a0c4e 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -4,15 +4,9 @@ metadata: name: {{ .Release.Name }} namespace: {{ include "app.namespace" . }} annotations: - {{- if (.Values.ingress).certManagerAnnotations -}} - {{- range (.Values.ingress).certManagerAnnotations }} -{{ . | indent 4 }} - {{- end }} - {{- else if (.Values.ingress).use_staging_cert }} - cert-manager.io/cluster-issuer: letsencrypt-staging - {{- else }} - cert-manager.io/cluster-issuer: letsencrypt-prod - {{- end }} + nginx.ingress.kubernetes.io/auth-tls-verify-client: "on" + nginx.ingress.kubernetes.io/auth-tls-secret: {{ include "app.namespace" . }}-ca-cert + nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true" spec: {{- if (.Values.ingress).className }} ingressClassName: {{ .Values.ingress.className }} @@ -32,8 +26,4 @@ spec: tls: - hosts: - {{ include "app.baseDomain" . }} - {{- if (.Values.ingress).tlsSecretName }} - secretName: {{ (.Values.ingress).tlsSecretName }} - {{- else }} - secretName: {{ .Values.ozgcloud.bezeichner }}-{{ .Release.Name }}-tls - {{- end }} \ No newline at end of file + secretName: {{ .Release.Name }}-tls-secret \ No newline at end of file diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml index e25af97..c9af200 100644 --- a/src/test/helm/ingress_test.yaml +++ b/src/test/helm/ingress_test.yaml @@ -38,19 +38,11 @@ tests: asserts: - isKind: of: Ingress - - it: should create default ingress tls + - it: should use same tls secret as in cluster asserts: - equal: path: spec.tls[0].secretName - value: helm-matabase-tls - - it: should set ingress tls - set: - ingress: - tlsSecretName: client-tls - asserts: - - equal: - path: spec.tls[0].secretName - value: client-tls + value: matabase-tls-secret - it: should not create ingress tls/ingressClass by default asserts: @@ -65,27 +57,23 @@ tests: path: spec.ingressClassName value: ingress - - it: should use default letsencrypt-prod cluster-issuer + - it: should enable client verification asserts: - equal: - path: metadata.annotations["cert-manager.io/cluster-issuer"] - value: letsencrypt-prod + path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-verify-client"] + value: "on" - - it: should use letsencrypt-staging cluster-issuer - set: - ingress.use_staging_cert: true + - it: should use CA of namespace to verify certificates asserts: - equal: - path: metadata.annotations["cert-manager.io/cluster-issuer"] - value: letsencrypt-staging + path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-secret"] + value: sh-helm-test-ca-cert - - it: should use letsencrypt-prod cluster-issuer - set: - ingress.use_staging_cert: false + - it: should pass certificate to upstream server asserts: - equal: - path: metadata.annotations["cert-manager.io/cluster-issuer"] - value: letsencrypt-prod + path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream"] + value: "true" - it: should create tls hosts name correctly asserts: -- GitLab From ad4c8b1f633500890e9f2952aa9273e592cdb7b0 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Thu, 12 Dec 2024 11:42:59 +0100 Subject: [PATCH 33/56] #2 OZG-7121 helm: Use letsencrypt for ingress --- .gitlab-ci.yml | 3 +++ src/main/helm/templates/ingress.yaml | 19 ++++++++++++++++--- src/test/helm/ingress_test.yaml | 28 +++++++++++++++++++++------- 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8bdd507..909e48e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -97,6 +97,9 @@ push-merge-request-helm-nexus: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: manual + artifacts: + paths: + - "*.tgz" # Snapshot jobs push-snapshot-image-gitlab: diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index 30a0c4e..da01f42 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -4,6 +4,15 @@ metadata: name: {{ .Release.Name }} namespace: {{ include "app.namespace" . }} annotations: + {{- if (.Values.ingress).certManagerAnnotations -}} + {{- range (.Values.ingress).certManagerAnnotations }} +{{ . | indent 4 }} + {{- end }} + {{- else if (.Values.ingress).use_staging_cert }} + cert-manager.io/cluster-issuer: letsencrypt-staging + {{- else }} + cert-manager.io/cluster-issuer: letsencrypt-prod + {{- end }} nginx.ingress.kubernetes.io/auth-tls-verify-client: "on" nginx.ingress.kubernetes.io/auth-tls-secret: {{ include "app.namespace" . }}-ca-cert nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true" @@ -22,8 +31,12 @@ spec: port: number: 8443 - host: {{ include "app.baseDomain" . }} + host: "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" tls: - hosts: - - {{ include "app.baseDomain" . }} - secretName: {{ .Release.Name }}-tls-secret \ No newline at end of file + - "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" + {{- if (.Values.ingress).tlsSecretName }} + secretName: {{ (.Values.ingress).tlsSecretName }} + {{- else }} + secretName: {{ .Values.ozgcloud.bezeichner }}-{{ .Release.Name }}-tls + {{- end }} \ No newline at end of file diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml index c9af200..27c7f37 100644 --- a/src/test/helm/ingress_test.yaml +++ b/src/test/helm/ingress_test.yaml @@ -38,11 +38,14 @@ tests: asserts: - isKind: of: Ingress - - it: should use same tls secret as in cluster + - it: should set ingress tls + set: + ingress: + tlsSecretName: client-tls asserts: - equal: path: spec.tls[0].secretName - value: matabase-tls-secret + value: client-tls - it: should not create ingress tls/ingressClass by default asserts: @@ -56,13 +59,25 @@ tests: - equal: path: spec.ingressClassName value: ingress - + - it: should use default letsencrypt-prod cluster-issuer + asserts: + - equal: + path: metadata.annotations["cert-manager.io/cluster-issuer"] + value: letsencrypt-prod + + - it: should use letsencrypt-staging cluster-issuer + set: + ingress.use_staging_cert: true + asserts: + - equal: + path: metadata.annotations["cert-manager.io/cluster-issuer"] + value: letsencrypt-staging + - it: should enable client verification asserts: - equal: path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-verify-client"] value: "on" - - it: should use CA of namespace to verify certificates asserts: - equal: @@ -74,12 +89,11 @@ tests: - equal: path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream"] value: "true" - - it: should create tls hosts name correctly asserts: - equal: path: spec.tls[0].hosts[0] - value: helm.test.by.ozg-cloud.de + value: matabase-helm.test.by.ozg-cloud.de - it: should create rules correctly asserts: @@ -98,4 +112,4 @@ tests: asserts: - equal: path: spec.rules[0].host - value: helm.test.by.ozg-cloud.de + value: matabase-helm.test.by.ozg-cloud.de -- GitLab From 637fa55e740d4f96524f8da1fefada479d9054ec Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Thu, 12 Dec 2024 12:40:33 +0100 Subject: [PATCH 34/56] #2 OZG-7121 helm: Resolve helm install warnings --- src/main/helm/templates/certificate.yaml | 5 ++--- src/main/helm/templates/deployment.yaml | 3 ++- src/test/helm/deployment_env_test.yaml | 11 +++++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml index 434f8b4..c9decda 100644 --- a/src/main/helm/templates/certificate.yaml +++ b/src/main/helm/templates/certificate.yaml @@ -23,14 +23,13 @@ spec: passwordSecretRef: name: xta-test-server-default-secret key: keystorePassword - alias: xta-test-server pkcs12: create: true passwordSecretRef: name: xta-test-server-default-secret key: keystorePassword subject: - organisations: + organizations: - "XtaTestOrga" countries: - DE @@ -40,7 +39,7 @@ spec: - Kiel provinces: - Schleswig-Holstein - steetAddresses: + streetAddresses: - "Test-Str. 4" postalCodes: - "22222" diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index a1d4ea7..f4e84a0 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -65,6 +65,8 @@ spec: value: /store/keystore.jks - name: server_ssl_trust-store value: /store/truststore.jks + - name: server_ssl_key-alias + value: certificate {{- with include "app.getCustomList" . }} {{ . | indent 10 }} {{- end }} @@ -125,7 +127,6 @@ spec: - name: xta-test-server-tls-store mountPath: "/store/" readOnly: true - volumes: - name: temp-dir emptyDir: {} diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index 52c9484..d9ac051 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -51,6 +51,17 @@ tests: content: name: server_ssl_key-store value: /store/keystore.jks + - it: should set key alias + set: + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: server_ssl_key-alias + value: certificate - it: should set truststore set: ozgcloud: -- GitLab From 825c5fab87604ef89eb4f34f19e4d1defd5ee7d1 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 11:20:12 +0100 Subject: [PATCH 35/56] #2 OZG-7121 helm: Use keystore.p12 --- src/main/helm/templates/deployment.yaml | 6 +++--- src/test/helm/deployment_env_test.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index f4e84a0..eb1080d 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -62,11 +62,11 @@ spec: - name: spring_profiles_active value: {{ include "app.envSpringProfiles" . }} - name: server_ssl_key-store - value: /store/keystore.jks - - name: server_ssl_trust-store - value: /store/truststore.jks + value: /store/keystore.p12 - name: server_ssl_key-alias value: certificate + - name: server_ssl_trust-store + value: /store/truststore.jks {{- with include "app.getCustomList" . }} {{ . | indent 10 }} {{- end }} diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index d9ac051..a4e9169 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -50,7 +50,7 @@ tests: path: spec.template.spec.containers[0].env content: name: server_ssl_key-store - value: /store/keystore.jks + value: /store/keystore.p12 - it: should set key alias set: ozgcloud: -- GitLab From 1afcd95a52e3aa5334baa1b319f1357b6755a05f Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 13:10:08 +0100 Subject: [PATCH 36/56] #2 OZG-7121 helm: Init truststore and keystore in deployment --- src/main/helm/templates/certificate.yaml | 11 -------- src/main/helm/templates/deployment.yaml | 25 +++++++++++++++--- src/main/resources/store/generate.sh | 3 +++ src/test/helm/deployment_env_test.yaml | 11 -------- src/test/helm/deployment_volumes_test.yaml | 30 +++++++++++++++++++--- 5 files changed, 51 insertions(+), 29 deletions(-) diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml index c9decda..0a4d782 100644 --- a/src/main/helm/templates/certificate.yaml +++ b/src/main/helm/templates/certificate.yaml @@ -17,17 +17,6 @@ spec: duration: 8760h0m0s # 1 Jahr renewBefore: 5840h0m0s # 8 Monate commonName: {{ .Release.Name }} - keystores: - jks: - create: true - passwordSecretRef: - name: xta-test-server-default-secret - key: keystorePassword - pkcs12: - create: true - passwordSecretRef: - name: xta-test-server-default-secret - key: keystorePassword subject: organizations: - "XtaTestOrga" diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index eb1080d..904a7ab 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -57,14 +57,31 @@ spec: labelSelector: matchLabels: app.kubernetes.io/name: {{ .Release.Name }} + initContainers: + - name: init-keystore-and-truststore + image: alpine:3.21 + command: [ "/bin/sh", "-c" ] + args: + - | + apk add --no-cache openssl openjdk11 + + echo "[1.0] Import Root CA into Xta-Server-Truststore" + keytool -importcert -alias xta-test-root-ca -keystore /store/keystore.jks -storetype JKS -storepass password -file /tls/ca.crt -noprompt + + # Create a PKCS#12 keystore from tls.crt and tls.key + openssl pkcs12 -export -in /tls/tls.crt -inkey /tls/tls.key -out /store/keystore.p12 -name xta-test-server -passout pass:password + volumeMounts: + - name: xta-test-server-tls-store + mountPath: "/tls/" + readOnly: true + - name: store-dir + mountPath: "/store/" containers: - env: - name: spring_profiles_active value: {{ include "app.envSpringProfiles" . }} - name: server_ssl_key-store value: /store/keystore.p12 - - name: server_ssl_key-alias - value: certificate - name: server_ssl_trust-store value: /store/truststore.jks {{- with include "app.getCustomList" . }} @@ -124,12 +141,14 @@ spec: volumeMounts: - name: temp-dir mountPath: "/tmp" - - name: xta-test-server-tls-store + - name: store-dir mountPath: "/store/" readOnly: true volumes: - name: temp-dir emptyDir: {} + - name: store-dir + emptyDir: {} - name: xta-test-server-tls-store secret: secretName: {{ .Release.Name }}-tls-secret diff --git a/src/main/resources/store/generate.sh b/src/main/resources/store/generate.sh index 5906a97..d6d7887 100755 --- a/src/main/resources/store/generate.sh +++ b/src/main/resources/store/generate.sh @@ -12,6 +12,9 @@ if [ ! -f $ISSUER_ALIAS.key ] || [ ! -f $ISSUER_ALIAS.crt ]; then openssl genrsa -out $ISSUER_ALIAS.key 2048 echo "[1.1] Generate a self-signed certificate for the Xta-Root-CA" openssl req -x509 -new -nodes -key $ISSUER_ALIAS.key -sha256 -days 4000 -out $ISSUER_ALIAS.crt -config ca-openssl.cnf -extensions v3_ca + + # echo "[1.2] Generate a keystore for the Xta-Root-CA" + # openssl pkcs12 -export -in $ISSUER_ALIAS.crt -inkey $ISSUER_ALIAS.key -out $ISSUER_ALIAS.p12 -name xta-test-server -passout pass:password else echo "[1.0] Root CA found. Skipping generation." fi diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index a4e9169..6fb8c36 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -51,17 +51,6 @@ tests: content: name: server_ssl_key-store value: /store/keystore.p12 - - it: should set key alias - set: - ozgcloud: - environment: dev - imagePullSecret: image-pull-secret - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: server_ssl_key-alias - value: certificate - it: should set truststore set: ozgcloud: diff --git a/src/test/helm/deployment_volumes_test.yaml b/src/test/helm/deployment_volumes_test.yaml index 9f998f3..2a7bdf4 100644 --- a/src/test/helm/deployment_volumes_test.yaml +++ b/src/test/helm/deployment_volumes_test.yaml @@ -25,6 +25,29 @@ tests: name: temp-dir emptyDir: {} + - it: should have store volume + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: store-dir + emptyDir: {} + - it: should have store volume mount in initContainer + asserts: + - contains: + path: spec.template.spec.initContainers[0].volumeMounts + content: + name: store-dir + mountPath: "/store/" + - it: should have truststore volume mount in container + asserts: + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: store-dir + mountPath: "/store/" + readOnly: true + - it: should have tls store volume asserts: - contains: @@ -33,12 +56,11 @@ tests: name: xta-test-server-tls-store secret: secretName: helm-test-tls-secret - - - it: should have truststore volume mount + - it: should have truststore volume mount in initContainer asserts: - contains: - path: spec.template.spec.containers[0].volumeMounts + path: spec.template.spec.initContainers[0].volumeMounts content: name: xta-test-server-tls-store - mountPath: "/store/" + mountPath: "/tls/" readOnly: true \ No newline at end of file -- GitLab From a1586d6a0cc383e4cece8f50b65868be4aacf04c Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 14:41:55 +0100 Subject: [PATCH 37/56] #2 OZG-7121 helm: Add keystore-truststore-from-tls-secret image --- .gitlab-ci.yml | 11 +++++++++++ keystore-truststore-from-tls-secret.dockerfile | 9 +++++++++ src/main/helm/templates/deployment.yaml | 12 +----------- .../keystore-truststore-from-tls-secret.sh | 17 +++++++++++++++++ 4 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 keystore-truststore-from-tls-secret.dockerfile create mode 100755 src/main/resources/store/keystore-truststore-from-tls-secret.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 909e48e..5ef8d6f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -143,3 +143,14 @@ push-release-image-nexus: - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG + + +# Extra jobs +push-keystore-assembler-image-nexus: + stage: publish + script: + - docker build -f keystore-truststore-from-tls-secret.dockerfile -t keystore-truststore-from-tls-secret:latest . + - echo "$NEXUS_PASSWORD" | docker login -u "$NEXUS_USER" --password-stdin nexus.ozg-sh.de + - docker tag keystore-truststore-from-tls-secret:latest docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest + - docker push docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest + when: manual \ No newline at end of file diff --git a/keystore-truststore-from-tls-secret.dockerfile b/keystore-truststore-from-tls-secret.dockerfile new file mode 100644 index 0000000..1d8a2c6 --- /dev/null +++ b/keystore-truststore-from-tls-secret.dockerfile @@ -0,0 +1,9 @@ +FROM alpine:3.21 + +RUN apk add --no-cache openssl openjdk11 + +COPY src/main/resources/store/keystore-truststore-from-tls-secret.sh ./ + +VOLUME /store /tls + +ENTRYPOINT [ "/bin/sh", "keystore-truststore-from-tls-secret.sh" ] \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 904a7ab..b0aa5db 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -59,17 +59,7 @@ spec: app.kubernetes.io/name: {{ .Release.Name }} initContainers: - name: init-keystore-and-truststore - image: alpine:3.21 - command: [ "/bin/sh", "-c" ] - args: - - | - apk add --no-cache openssl openjdk11 - - echo "[1.0] Import Root CA into Xta-Server-Truststore" - keytool -importcert -alias xta-test-root-ca -keystore /store/keystore.jks -storetype JKS -storepass password -file /tls/ca.crt -noprompt - - # Create a PKCS#12 keystore from tls.crt and tls.key - openssl pkcs12 -export -in /tls/tls.crt -inkey /tls/tls.key -out /store/keystore.p12 -name xta-test-server -passout pass:password + image: docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest volumeMounts: - name: xta-test-server-tls-store mountPath: "/tls/" diff --git a/src/main/resources/store/keystore-truststore-from-tls-secret.sh b/src/main/resources/store/keystore-truststore-from-tls-secret.sh new file mode 100755 index 0000000..1c89348 --- /dev/null +++ b/src/main/resources/store/keystore-truststore-from-tls-secret.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +IN_CA_CRT=${IN_CA_CRT-:/tls/ca.crt} +IN_TLS_KEY=${IN_TLS_KEY-:/tls/tls.key} +IN_TLS_CRT=${IN_TLS_CRT-:/tls/tls.crt} + +OUT_JKS_TRUSTSTORE=${OUT_JKS_TRUSTSTORE-:/store/truststore.jks} +OUT_JKS_TRUSTSTORE_KEY_ALIAS=${OUT_JKS_TRUSTSTORE_KEY_ALIAS-:xta-test-root-ca} +OUT_JKS_TRUSTSTORE_KEY_PASSWORD=${OUT_JKS_TRUSTSTORE_KEY_PASSWORD-:password} +echo "[1.0] Create $OUT_JKS_TRUSTSTORE from $IN_CA_CRT" +keytool -importcert -alias "$OUT_JKS_TRUSTSTORE_KEY_ALIAS" -keystore "$OUT_JKS_TRUSTSTORE" -storetype JKS -storepass "$OUT_JKS_TRUSTSTORE_KEY_PASSWORD" -file "$IN_CA_CRT" -noprompt + +OUT_P12_KEYSTORE=${OUT_P12_KEYSTORE-:/store/keystore.p12} +OUT_P12_KEYSTORE_KEY_ALIAS=${OUT_P12_KEYSTORE_KEY_ALIAS-:xta-test-server} +OUT_P12_KEYSTORE_KEY_PASSWORD=${OUT_P12_KEYSTORE_KEY_PASSWORD-:password} +echo "[2.0] Create $OUT_P12_KEYSTORE from $IN_TLS_KEY and $IN_TLS_CRT" +openssl pkcs12 -export -in "$IN_TLS_CRT" -inkey "$IN_TLS_KEY" -out "$OUT_P12_KEYSTORE" -name "$OUT_P12_KEYSTORE_KEY_ALIAS" -passout "pass:$OUT_P12_KEYSTORE_KEY_PASSWORD" \ No newline at end of file -- GitLab From 0c1cc72adb3685b17fb65464c09114aec84626ea Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 14:47:35 +0100 Subject: [PATCH 38/56] #2 OZG-7121 pipeline: Adjust push-keystore-assembler-image-nexus --- .gitlab-ci.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5ef8d6f..adc2879 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -101,6 +101,17 @@ push-merge-request-helm-nexus: paths: - "*.tgz" +push-keystore-assembler-image-nexus: + stage: publish + script: + - docker build -f keystore-truststore-from-tls-secret.dockerfile -t keystore-truststore-from-tls-secret:latest . + - echo "$NEXUS_PASSWORD" | docker login -u "$NEXUS_USER" --password-stdin docker.ozg-sh.de + - docker tag keystore-truststore-from-tls-secret:latest docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest + - docker push docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest + when: manual + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + # Snapshot jobs push-snapshot-image-gitlab: stage: publish @@ -143,14 +154,3 @@ push-release-image-nexus: - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG - - -# Extra jobs -push-keystore-assembler-image-nexus: - stage: publish - script: - - docker build -f keystore-truststore-from-tls-secret.dockerfile -t keystore-truststore-from-tls-secret:latest . - - echo "$NEXUS_PASSWORD" | docker login -u "$NEXUS_USER" --password-stdin nexus.ozg-sh.de - - docker tag keystore-truststore-from-tls-secret:latest docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest - - docker push docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest - when: manual \ No newline at end of file -- GitLab From 637b91149afec35032c63aa29596ac9874155bef Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 15:00:06 +0100 Subject: [PATCH 39/56] #2 OZG-7121 pipeline: Adjust push-keystore-assembler-image-nexus --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index adc2879..84b20f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -103,6 +103,7 @@ push-merge-request-helm-nexus: push-keystore-assembler-image-nexus: stage: publish + image: docker:latest script: - docker build -f keystore-truststore-from-tls-secret.dockerfile -t keystore-truststore-from-tls-secret:latest . - echo "$NEXUS_PASSWORD" | docker login -u "$NEXUS_USER" --password-stdin docker.ozg-sh.de -- GitLab From fd4f8e38245dc01c0cad6eeb3592313c2a69413f Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 15:19:47 +0100 Subject: [PATCH 40/56] #2 OZG-7121 helm: Add initContainer command --- keystore-truststore-from-tls-secret.dockerfile | 4 ++-- src/main/helm/templates/deployment.yaml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/keystore-truststore-from-tls-secret.dockerfile b/keystore-truststore-from-tls-secret.dockerfile index 1d8a2c6..a1a32fa 100644 --- a/keystore-truststore-from-tls-secret.dockerfile +++ b/keystore-truststore-from-tls-secret.dockerfile @@ -2,8 +2,8 @@ FROM alpine:3.21 RUN apk add --no-cache openssl openjdk11 -COPY src/main/resources/store/keystore-truststore-from-tls-secret.sh ./ +COPY src/main/resources/store/keystore-truststore-from-tls-secret.sh /opt/ VOLUME /store /tls -ENTRYPOINT [ "/bin/sh", "keystore-truststore-from-tls-secret.sh" ] \ No newline at end of file +ENTRYPOINT [ "/bin/sh", "/opt/keystore-truststore-from-tls-secret.sh" ] \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index b0aa5db..e07e2a7 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -60,6 +60,7 @@ spec: initContainers: - name: init-keystore-and-truststore image: docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest + command: ["/bin/sh", "/opt/keystore-truststore-from-tls-secret.sh"] volumeMounts: - name: xta-test-server-tls-store mountPath: "/tls/" -- GitLab From e02001c92e0f1eb5c08cdbb536355417d9000faf Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 15:51:28 +0100 Subject: [PATCH 41/56] #2 OZG-7121 helm: Run as user 185 --- keystore-truststore-from-tls-secret.dockerfile | 3 ++- src/main/helm/templates/deployment.yaml | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/keystore-truststore-from-tls-secret.dockerfile b/keystore-truststore-from-tls-secret.dockerfile index a1a32fa..7e7625e 100644 --- a/keystore-truststore-from-tls-secret.dockerfile +++ b/keystore-truststore-from-tls-secret.dockerfile @@ -2,8 +2,9 @@ FROM alpine:3.21 RUN apk add --no-cache openssl openjdk11 -COPY src/main/resources/store/keystore-truststore-from-tls-secret.sh /opt/ +COPY --chown=185 src/main/resources/store/keystore-truststore-from-tls-secret.sh /opt/ VOLUME /store /tls +USER 185 ENTRYPOINT [ "/bin/sh", "/opt/keystore-truststore-from-tls-secret.sh" ] \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index e07e2a7..7ea7752 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -61,6 +61,8 @@ spec: - name: init-keystore-and-truststore image: docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest command: ["/bin/sh", "/opt/keystore-truststore-from-tls-secret.sh"] + securityContext: + runAsUser: 185 volumeMounts: - name: xta-test-server-tls-store mountPath: "/tls/" -- GitLab From 429ce918c2e3409b277330f99c235d44ccd3538a Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 16:07:39 +0100 Subject: [PATCH 42/56] #2 OZG-7121 Fix keystore truststore from tls secret --- .../keystore-truststore-from-tls-secret.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/resources/store/keystore-truststore-from-tls-secret.sh b/src/main/resources/store/keystore-truststore-from-tls-secret.sh index 1c89348..750a054 100755 --- a/src/main/resources/store/keystore-truststore-from-tls-secret.sh +++ b/src/main/resources/store/keystore-truststore-from-tls-secret.sh @@ -1,17 +1,17 @@ #!/bin/sh -IN_CA_CRT=${IN_CA_CRT-:/tls/ca.crt} -IN_TLS_KEY=${IN_TLS_KEY-:/tls/tls.key} -IN_TLS_CRT=${IN_TLS_CRT-:/tls/tls.crt} +IN_CA_CRT=${IN_CA_CRT:-/tls/ca.crt} +IN_TLS_KEY=${IN_TLS_KEY:-/tls/tls.key} +IN_TLS_CRT=${IN_TLS_CRT:-/tls/tls.crt} -OUT_JKS_TRUSTSTORE=${OUT_JKS_TRUSTSTORE-:/store/truststore.jks} -OUT_JKS_TRUSTSTORE_KEY_ALIAS=${OUT_JKS_TRUSTSTORE_KEY_ALIAS-:xta-test-root-ca} -OUT_JKS_TRUSTSTORE_KEY_PASSWORD=${OUT_JKS_TRUSTSTORE_KEY_PASSWORD-:password} +OUT_JKS_TRUSTSTORE=${OUT_JKS_TRUSTSTORE:-/store/truststore.jks} +OUT_JKS_TRUSTSTORE_KEY_ALIAS=${OUT_JKS_TRUSTSTORE_KEY_ALIAS:-xta-test-root-ca} +OUT_JKS_TRUSTSTORE_KEY_PASSWORD=${OUT_JKS_TRUSTSTORE_KEY_PASSWORD:-password} echo "[1.0] Create $OUT_JKS_TRUSTSTORE from $IN_CA_CRT" keytool -importcert -alias "$OUT_JKS_TRUSTSTORE_KEY_ALIAS" -keystore "$OUT_JKS_TRUSTSTORE" -storetype JKS -storepass "$OUT_JKS_TRUSTSTORE_KEY_PASSWORD" -file "$IN_CA_CRT" -noprompt -OUT_P12_KEYSTORE=${OUT_P12_KEYSTORE-:/store/keystore.p12} -OUT_P12_KEYSTORE_KEY_ALIAS=${OUT_P12_KEYSTORE_KEY_ALIAS-:xta-test-server} -OUT_P12_KEYSTORE_KEY_PASSWORD=${OUT_P12_KEYSTORE_KEY_PASSWORD-:password} +OUT_P12_KEYSTORE=${OUT_P12_KEYSTORE:-/store/keystore.p12} +OUT_P12_KEYSTORE_KEY_ALIAS=${OUT_P12_KEYSTORE_KEY_ALIAS:-xta-test-server} +OUT_P12_KEYSTORE_KEY_PASSWORD=${OUT_P12_KEYSTORE_KEY_PASSWORD:-password} echo "[2.0] Create $OUT_P12_KEYSTORE from $IN_TLS_KEY and $IN_TLS_CRT" openssl pkcs12 -export -in "$IN_TLS_CRT" -inkey "$IN_TLS_KEY" -out "$OUT_P12_KEYSTORE" -name "$OUT_P12_KEYSTORE_KEY_ALIAS" -passout "pass:$OUT_P12_KEYSTORE_KEY_PASSWORD" \ No newline at end of file -- GitLab From 4b2bf9436a6121e59935aaace5c0144c92d3aa20 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 16:11:11 +0100 Subject: [PATCH 43/56] #2 OZG-7121 helm: Add image pull policy --- src/main/helm/templates/deployment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 7ea7752..aeb10ef 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -60,6 +60,7 @@ spec: initContainers: - name: init-keystore-and-truststore image: docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest + imagePullPolicy: Always command: ["/bin/sh", "/opt/keystore-truststore-from-tls-secret.sh"] securityContext: runAsUser: 185 -- GitLab From 39d3f5015507b2a347621b80e35f3bd12b6f77be Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 16:30:06 +0100 Subject: [PATCH 44/56] #2 OZG-7121 helm: Remove runAsUser config --- src/main/helm/templates/deployment.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index aeb10ef..487f906 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -62,8 +62,6 @@ spec: image: docker.ozg-sh.de/keystore-truststore-from-tls-secret:latest imagePullPolicy: Always command: ["/bin/sh", "/opt/keystore-truststore-from-tls-secret.sh"] - securityContext: - runAsUser: 185 volumeMounts: - name: xta-test-server-tls-store mountPath: "/tls/" -- GitLab From e6610a4c02a1334271feac4dcb1ef0650a793ea9 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 13 Dec 2024 17:20:16 +0100 Subject: [PATCH 45/56] #2 OZG-7121 Add fetch-trust-store script --- scripts/.gitignore | 2 ++ scripts/fetch-trust-store.sh | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 scripts/.gitignore create mode 100755 scripts/fetch-trust-store.sh diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 0000000..21d3832 --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1,2 @@ +*.crt +*.jks \ No newline at end of file diff --git a/scripts/fetch-trust-store.sh b/scripts/fetch-trust-store.sh new file mode 100755 index 0000000..cad8fa8 --- /dev/null +++ b/scripts/fetch-trust-store.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +NAMESPACE=${NAMESPACE:-by-enable-dev} + +echo "[1.0] Find xta-test-server pod in namespace $NAMESPACE" +XTA_TEST_SERVER_POD=$(kubectl get pods -n "$NAMESPACE" -l app.kubernetes.io/name=xta-test-server -o jsonpath='{.items[0].metadata.name}') + +echo "[1.1] Fetch truststore from xta-test-server pod" +kubectl cp "$NAMESPACE/$XTA_TEST_SERVER_POD:/store/truststore.jks" xta-test-truststore.jks + +echo "[2.0] Show certificate in truststore xta-test-truststore.jks" +keytool -exportcert -keystore xta-test-truststore.jks -storepass password -alias xta-test-root-ca -file xta-test-root-ca.crt +openssl x509 -in xta-test-root-ca.crt -text -noout \ No newline at end of file -- GitLab From fb4c0b0bb77e82ba1abf8894c9b1d9654e0aaab1 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 16 Dec 2024 12:32:45 +0100 Subject: [PATCH 46/56] #2 OZG-7121 helm: Add three client certificates --- .../helm/templates/client_certificates.yaml | 47 ++++++++++++ src/main/helm/templates/network_policy.yaml | 13 +--- src/main/helm/values.yaml | 4 + src/test/helm/certificate_test.yaml | 5 ++ src/test/helm/client_certificates_test.yaml | 74 +++++++++++++++++++ src/test/helm/network_policy_test.yaml | 47 ++---------- 6 files changed, 140 insertions(+), 50 deletions(-) create mode 100644 src/main/helm/templates/client_certificates.yaml create mode 100644 src/test/helm/client_certificates_test.yaml diff --git a/src/main/helm/templates/client_certificates.yaml b/src/main/helm/templates/client_certificates.yaml new file mode 100644 index 0000000..c52df70 --- /dev/null +++ b/src/main/helm/templates/client_certificates.yaml @@ -0,0 +1,47 @@ +{{- range $idx, $cn := .Values.clientCertificateCommonNames }} +{{- with $ -}} +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: {{ .Release.Name }}-{{ $cn | lower }}-tls-certificate + namespace: {{ include "app.namespace" . }} + labels: + {{- include "app.defaultLabels" . | indent 4 }} +spec: + isCA: false + secretName: {{ .Release.Name }}-{{ $cn | lower }}-tls-secret + privateKey: + algorithm: ECDSA + size: 256 + issuerRef: + name: {{ include "app.namespace" . }}-ca-issuer + kind: Issuer + duration: 8760h0m0s # 1 Jahr + renewBefore: 5840h0m0s # 8 Monate + commonName: {{ $cn }} + subject: + organizations: + - "XtaTestOrga" + countries: + - DE + organizationalUnits: + - "XtaTestUnit{{ $idx }}" + localities: + - Kiel + provinces: + - Schleswig-Holstein + streetAddresses: + - "Test-Str. {{ $idx }}" + postalCodes: + - "22222" + # critical, digitalSignature, nonRepudiation, keyEncipherment, keyAgreement + usages: + - client auth + - digital signature + - content commitment # https://cryptography.io/en/latest/x509/reference/#cryptography.x509.KeyUsage.content_commitment + - key encipherment + - key agreement + +--- +{{ end -}} +{{- end }} \ No newline at end of file diff --git a/src/main/helm/templates/network_policy.yaml b/src/main/helm/templates/network_policy.yaml index 8c490c4..deac83a 100644 --- a/src/main/helm/templates/network_policy.yaml +++ b/src/main/helm/templates/network_policy.yaml @@ -2,16 +2,18 @@ apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: - name: network-policy-xta-test-server + name: {{ .Release.Name }}-network-policy namespace: {{ include "app.namespace" . }} spec: podSelector: matchLabels: - component: xta-test-server + {{- include "app.matchLabels" . | indent 6 }} policyTypes: - Ingress - Egress ingress: + - ports: + - port: 8443 - from: - namespaceSelector: matchLabels: @@ -19,13 +21,6 @@ spec: ports: - protocol: TCP port: 8081 - - from: - - podSelector: - matchLabels: - component: vorgang-manager - ports: - - protocol: TCP - port: 8080 {{- with (.Values.networkPolicy).additionalIngressConfigLocal }} {{ toYaml . | indent 2 }} {{- end }} diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index 072e1c9..9fe80af 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -29,3 +29,7 @@ image: name: xta-test-server tag: latest +clientCertificateCommonNames: + - clientA + - clientB + - clientC diff --git a/src/test/helm/certificate_test.yaml b/src/test/helm/certificate_test.yaml index 54c4401..b91e5d2 100644 --- a/src/test/helm/certificate_test.yaml +++ b/src/test/helm/certificate_test.yaml @@ -53,6 +53,11 @@ tests: - equal: path: spec.commonName value: xta-test-server-release-name + - it: should use cluster ca as issuer + asserts: + - equal: + path: spec.issuerRef.name + value: sh-helm-test-ca-issuer - it: should set dns names asserts: - equal: diff --git a/src/test/helm/client_certificates_test.yaml b/src/test/helm/client_certificates_test.yaml new file mode 100644 index 0000000..2ae85ca --- /dev/null +++ b/src/test/helm/client_certificates_test.yaml @@ -0,0 +1,74 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test client_certificates.yaml +release: + name: xta-test-server-release-name + namespace: sh-helm-test +templates: + - templates/client_certificates.yaml +set: + ozgcloud: + bezeichner: helm + baseUrl: test.by.ozg-cloud.de + +tests: + - it: should configure three certificates by default + asserts: + - hasDocuments: + count: 3 + - it: should contain a Certificate document + set: + clientCertificateCommonNames: + - CommonName + asserts: + - containsDocument: + kind: Certificate + apiVersion: cert-manager.io/v1 + name: xta-test-server-release-name-commonname-tls-certificate + namespace: sh-helm-test + - it: should set common name + set: + clientCertificateCommonNames: + - CommonName + asserts: + - equal: + path: spec.commonName + value: CommonName + - it: should set secret name + set: + clientCertificateCommonNames: + - CommonName + asserts: + - equal: + path: spec.secretName + value: xta-test-server-release-name-commonname-tls-secret + - it: should use cluster ca as issuer + set: + clientCertificateCommonNames: + - CommonName + asserts: + - equal: + path: spec.issuerRef.name + value: sh-helm-test-ca-issuer diff --git a/src/test/helm/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml index ff25d18..5a00166 100644 --- a/src/test/helm/network_policy_test.yaml +++ b/src/test/helm/network_policy_test.yaml @@ -28,7 +28,6 @@ release: namespace: by-helm-test templates: - templates/network_policy.yaml - tests: - it: should match apiVersion set: @@ -52,52 +51,18 @@ tests: - equal: path: metadata value: - name: network-policy-xta-test-server + name: xta-test-server-network-policy namespace: by-helm-test - it: validate spec set: networkPolicy: dnsServerNamespace: kube-system asserts: - - equal: - path: spec - value: - egress: - - ports: - - port: 53 - protocol: UDP - - port: 53 - protocol: TCP - - port: 5353 - protocol: UDP - - port: 5353 - protocol: TCP - to: - - namespaceSelector: - matchLabels: - kubernetes.io/metadata.name: kube-system - ingress: - - from: - - namespaceSelector: - matchLabels: - name: openshift-user-workload-monitoring - ports: - - port: 8081 - protocol: TCP - - from: - - podSelector: - matchLabels: - component: vorgang-manager - ports: - - port: 8080 - protocol: TCP - podSelector: - matchLabels: - component: xta-test-server - policyTypes: - - Ingress - - Egress - + - contains: + path: spec.ingress + content: + ports: + - port: 8443 - it: add ingress rule by values local set: -- GitLab From 5b1809a846c8f602fe1a325d7a454eae5aca9012 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 16 Dec 2024 13:06:53 +0100 Subject: [PATCH 47/56] #2 OZG-7121 helm: Remove default secret --- src/main/helm/templates/default_secret.yaml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 src/main/helm/templates/default_secret.yaml diff --git a/src/main/helm/templates/default_secret.yaml b/src/main/helm/templates/default_secret.yaml deleted file mode 100644 index ae8b6f5..0000000 --- a/src/main/helm/templates/default_secret.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: xta-test-server-default-secret - namespace: {{ include "app.namespace" . }} - labels: - {{- include "app.defaultLabels" . | indent 4 }} -type: Opaque -data: - keystorePassword: password \ No newline at end of file -- GitLab From 888a6eb3820b91001d768a991c4023fe5ef3b56a Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 16 Dec 2024 13:56:20 +0100 Subject: [PATCH 48/56] #2 OZG-7121 helm: Configure haproxy-ingress with ssl-passthrough --- src/main/helm/templates/certificate.yaml | 7 +-- src/main/helm/templates/ingress.yaml | 33 +++----------- src/test/helm/certificate_test.yaml | 7 +-- src/test/helm/ingress_test.yaml | 56 +----------------------- 4 files changed, 9 insertions(+), 94 deletions(-) diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml index 0a4d782..7ac0e72 100644 --- a/src/main/helm/templates/certificate.yaml +++ b/src/main/helm/templates/certificate.yaml @@ -40,9 +40,4 @@ spec: - key encipherment - key agreement dnsNames: - - "*.{{ .Release.Name }}.{{ include "app.namespace" . }}.svc.cluster.local" - - "{{ .Release.Name }}.{{ include "app.namespace" . }}.svc.cluster.local" - - "{{ .Release.Name }}.{{ include "app.namespace" . }}.svc.cluster" - - "{{ .Release.Name }}.{{ include "app.namespace" . }}.svc" - - "{{ .Release.Name }}.{{ include "app.namespace" . }}" - - "{{ .Release.Name }}" \ No newline at end of file + - "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" \ No newline at end of file diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index da01f42..2285822 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -4,39 +4,16 @@ metadata: name: {{ .Release.Name }} namespace: {{ include "app.namespace" . }} annotations: - {{- if (.Values.ingress).certManagerAnnotations -}} - {{- range (.Values.ingress).certManagerAnnotations }} -{{ . | indent 4 }} - {{- end }} - {{- else if (.Values.ingress).use_staging_cert }} - cert-manager.io/cluster-issuer: letsencrypt-staging - {{- else }} - cert-manager.io/cluster-issuer: letsencrypt-prod - {{- end }} - nginx.ingress.kubernetes.io/auth-tls-verify-client: "on" - nginx.ingress.kubernetes.io/auth-tls-secret: {{ include "app.namespace" . }}-ca-cert - nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true" + haproxy-ingress.github.io/ssl-passthrough: "true" spec: - {{- if (.Values.ingress).className }} - ingressClassName: {{ .Values.ingress.className }} - {{- end }} rules: - - http: + - host: "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" + http: paths: - path: / pathType: Prefix backend: service: name: {{ .Release.Name }} - port: - number: 8443 - - host: "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" - tls: - - hosts: - - "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" - {{- if (.Values.ingress).tlsSecretName }} - secretName: {{ (.Values.ingress).tlsSecretName }} - {{- else }} - secretName: {{ .Values.ozgcloud.bezeichner }}-{{ .Release.Name }}-tls - {{- end }} \ No newline at end of file + port: + number: 8443 \ No newline at end of file diff --git a/src/test/helm/certificate_test.yaml b/src/test/helm/certificate_test.yaml index b91e5d2..cf78c77 100644 --- a/src/test/helm/certificate_test.yaml +++ b/src/test/helm/certificate_test.yaml @@ -63,12 +63,7 @@ tests: - equal: path: spec.dnsNames value: - - "*.xta-test-server-release-name.sh-helm-test.svc.cluster.local" - - "xta-test-server-release-name.sh-helm-test.svc.cluster.local" - - "xta-test-server-release-name.sh-helm-test.svc.cluster" - - "xta-test-server-release-name.sh-helm-test.svc" - - "xta-test-server-release-name.sh-helm-test" - - "xta-test-server-release-name" + - "xta-test-server-release-name-helm.test.by.ozg-cloud.de" - it: should contain default lables and component lables asserts: - equal: diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml index 27c7f37..06b8b23 100644 --- a/src/test/helm/ingress_test.yaml +++ b/src/test/helm/ingress_test.yaml @@ -38,63 +38,11 @@ tests: asserts: - isKind: of: Ingress - - it: should set ingress tls - set: - ingress: - tlsSecretName: client-tls + - it: should enable ssl passthrough asserts: - equal: - path: spec.tls[0].secretName - value: client-tls - - - it: should not create ingress tls/ingressClass by default - asserts: - - isNull: - path: spec.ingressClassName - - it: should set ingress tls/ingressClass - set: - ingress: - className: ingress - asserts: - - equal: - path: spec.ingressClassName - value: ingress - - it: should use default letsencrypt-prod cluster-issuer - asserts: - - equal: - path: metadata.annotations["cert-manager.io/cluster-issuer"] - value: letsencrypt-prod - - - it: should use letsencrypt-staging cluster-issuer - set: - ingress.use_staging_cert: true - asserts: - - equal: - path: metadata.annotations["cert-manager.io/cluster-issuer"] - value: letsencrypt-staging - - - it: should enable client verification - asserts: - - equal: - path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-verify-client"] - value: "on" - - it: should use CA of namespace to verify certificates - asserts: - - equal: - path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-secret"] - value: sh-helm-test-ca-cert - - - it: should pass certificate to upstream server - asserts: - - equal: - path: metadata.annotations["nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream"] + path: metadata.annotations["haproxy-ingress.github.io/ssl-passthrough"] value: "true" - - it: should create tls hosts name correctly - asserts: - - equal: - path: spec.tls[0].hosts[0] - value: matabase-helm.test.by.ozg-cloud.de - - it: should create rules correctly asserts: - equal: -- GitLab From 94e5a44335d9241533b42f90d3819d139bd1e1ac Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 16 Dec 2024 15:14:45 +0100 Subject: [PATCH 49/56] #2 OZG-7121 script: Add fetch client secret script --- ...tore-truststore-from-tls-secret.dockerfile | 2 +- scripts/fetch-client-tls-secret.sh | 27 +++++++++++++++++++ ...t-store.sh => fetch-server-trust-store.sh} | 0 .../keystore-truststore-from-tls-secret.sh | 0 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 scripts/fetch-client-tls-secret.sh rename scripts/{fetch-trust-store.sh => fetch-server-trust-store.sh} (100%) rename {src/main/resources/store => scripts}/keystore-truststore-from-tls-secret.sh (100%) diff --git a/keystore-truststore-from-tls-secret.dockerfile b/keystore-truststore-from-tls-secret.dockerfile index 7e7625e..478b24c 100644 --- a/keystore-truststore-from-tls-secret.dockerfile +++ b/keystore-truststore-from-tls-secret.dockerfile @@ -2,7 +2,7 @@ FROM alpine:3.21 RUN apk add --no-cache openssl openjdk11 -COPY --chown=185 src/main/resources/store/keystore-truststore-from-tls-secret.sh /opt/ +COPY --chown=185 scripts/keystore-truststore-from-tls-secret.sh /opt/ VOLUME /store /tls USER 185 diff --git a/scripts/fetch-client-tls-secret.sh b/scripts/fetch-client-tls-secret.sh new file mode 100755 index 0000000..93e8735 --- /dev/null +++ b/scripts/fetch-client-tls-secret.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +CLIENT_NAME=${CLIENT_NAME:-clienta} +NAMESPACE=${NAMESPACE:-by-enable-dev} +TLS_DIR=${CLIENT_NAME}-tls + +export IN_CA_CRT="$TLS_DIR"/ca.crt +export IN_TLS_KEY="$TLS_DIR"/tls.key +export IN_TLS_CRT="$TLS_DIR"/tls.crt + +export OUT_JKS_TRUSTSTORE="$TLS_DIR"/truststore.jks +export OUT_P12_KEYSTORE="$TLS_DIR"/keystore.p12 + +fetch_secret_file() { + kubectl get secret -n "$NAMESPACE" "xta-test-server-${CLIENT_NAME}-tls-secret" -o jsonpath="$1" | base64 -d +} + +mkdir -p "$TLS_DIR" + +fetch_secret_file '{.data.ca\.crt}' > "$IN_CA_CRT" +fetch_secret_file '{.data.tls\.key}' > "$IN_TLS_KEY" +fetch_secret_file '{.data.tls\.crt}' > "$IN_TLS_CRT" + +exec /bin/sh keystore-truststore-from-tls-secret.sh + diff --git a/scripts/fetch-trust-store.sh b/scripts/fetch-server-trust-store.sh similarity index 100% rename from scripts/fetch-trust-store.sh rename to scripts/fetch-server-trust-store.sh diff --git a/src/main/resources/store/keystore-truststore-from-tls-secret.sh b/scripts/keystore-truststore-from-tls-secret.sh similarity index 100% rename from src/main/resources/store/keystore-truststore-from-tls-secret.sh rename to scripts/keystore-truststore-from-tls-secret.sh -- GitLab From eacc325962138d441e73bf44c0ab1f69cd20e841 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Wed, 18 Dec 2024 09:32:26 +0100 Subject: [PATCH 50/56] #2 OZG-7121 helm: Add openshift route --- src/main/helm/templates/certificate.yaml | 1 + src/main/helm/templates/route.yaml | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/main/helm/templates/route.yaml diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml index 7ac0e72..76aac3a 100644 --- a/src/main/helm/templates/certificate.yaml +++ b/src/main/helm/templates/certificate.yaml @@ -40,4 +40,5 @@ spec: - key encipherment - key agreement dnsNames: + - "{{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }}" - "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" \ No newline at end of file diff --git a/src/main/helm/templates/route.yaml b/src/main/helm/templates/route.yaml new file mode 100644 index 0000000..0f86471 --- /dev/null +++ b/src/main/helm/templates/route.yaml @@ -0,0 +1,23 @@ +kind: Route +apiVersion: route.openshift.io/v1 +metadata: + name: {{ .Release.Name }}-passthrough + namespace: by-enable-dev + +spec: + host: {{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }} + to: + kind: Service + name: xta-test-server + weight: 100 + port: + targetPort: 8443 + tls: + termination: passthrough + wildcardPolicy: None +status: + ingress: + - host: {{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }} + routerName: default + wildcardPolicy: None + routerCanonicalHostname: router-default.apps.okd.dev.by.ozg-cloud.systems -- GitLab From 69e6855b624226f17623c85a1c9c7192e28e160a Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Wed, 18 Dec 2024 20:27:47 +0100 Subject: [PATCH 51/56] #2 OZG-7121 helm: Use ingressClassname to ingress, again --- src/main/helm/templates/ingress.yaml | 3 +++ src/test/helm/ingress_test.yaml | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index 2285822..3367822 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -6,6 +6,9 @@ metadata: annotations: haproxy-ingress.github.io/ssl-passthrough: "true" spec: + {{- if (.Values.ingress).className }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} rules: - host: "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" http: diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml index 06b8b23..668a3e7 100644 --- a/src/test/helm/ingress_test.yaml +++ b/src/test/helm/ingress_test.yaml @@ -43,6 +43,19 @@ tests: - equal: path: metadata.annotations["haproxy-ingress.github.io/ssl-passthrough"] value: "true" + + - it: should not create ingress tls/ingressClass by default + asserts: + - isNull: + path: spec.ingressClassName + - it: should set ingress tls/ingressClass + set: + ingress: + className: ingress + asserts: + - equal: + path: spec.ingressClassName + value: ingress - it: should create rules correctly asserts: - equal: -- GitLab From 8c97833e9d3f85c1130216a32e574ae86389144b Mon Sep 17 00:00:00 2001 From: Bastian <bastian.heppener@mgm-tp.com> Date: Fri, 10 Jan 2025 17:00:40 +0100 Subject: [PATCH 52/56] ozg-7121 ingress with ssl passthrough --- src/main/helm/templates/certificate.yaml | 1 - src/main/helm/templates/ingress.yaml | 6 +++--- src/main/helm/templates/route.yaml | 23 ----------------------- src/test/helm/ingress_test.yaml | 14 +++++++------- 4 files changed, 10 insertions(+), 34 deletions(-) delete mode 100644 src/main/helm/templates/route.yaml diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml index 76aac3a..7ac0e72 100644 --- a/src/main/helm/templates/certificate.yaml +++ b/src/main/helm/templates/certificate.yaml @@ -40,5 +40,4 @@ spec: - key encipherment - key agreement dnsNames: - - "{{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }}" - "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" \ No newline at end of file diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index 3367822..f56f06a 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -4,7 +4,7 @@ metadata: name: {{ .Release.Name }} namespace: {{ include "app.namespace" . }} annotations: - haproxy-ingress.github.io/ssl-passthrough: "true" + route.openshift.io/termination: passthrough spec: {{- if (.Values.ingress).className }} ingressClassName: {{ .Values.ingress.className }} @@ -13,8 +13,8 @@ spec: - host: "{{ .Release.Name }}-{{ include "app.baseDomain" . }}" http: paths: - - path: / - pathType: Prefix + - path: "" + pathType: ImplementationSpecific backend: service: name: {{ .Release.Name }} diff --git a/src/main/helm/templates/route.yaml b/src/main/helm/templates/route.yaml deleted file mode 100644 index 0f86471..0000000 --- a/src/main/helm/templates/route.yaml +++ /dev/null @@ -1,23 +0,0 @@ -kind: Route -apiVersion: route.openshift.io/v1 -metadata: - name: {{ .Release.Name }}-passthrough - namespace: by-enable-dev - -spec: - host: {{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }} - to: - kind: Service - name: xta-test-server - weight: 100 - port: - targetPort: 8443 - tls: - termination: passthrough - wildcardPolicy: None -status: - ingress: - - host: {{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }} - routerName: default - wildcardPolicy: None - routerCanonicalHostname: router-default.apps.okd.dev.by.ozg-cloud.systems diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml index 668a3e7..8a67ad4 100644 --- a/src/test/helm/ingress_test.yaml +++ b/src/test/helm/ingress_test.yaml @@ -24,7 +24,7 @@ suite: test ingress.yaml release: - name: matabase + name: xta-test-server namespace: sh-helm-test templates: - templates/ingress.yaml @@ -41,8 +41,8 @@ tests: - it: should enable ssl passthrough asserts: - equal: - path: metadata.annotations["haproxy-ingress.github.io/ssl-passthrough"] - value: "true" + path: metadata.annotations["route.openshift.io/termination"] + value: "passthrough" - it: should not create ingress tls/ingressClass by default asserts: @@ -61,11 +61,11 @@ tests: - equal: path: spec.rules[0].http.paths[0] value: - path: / - pathType: Prefix + path: "" + pathType: ImplementationSpecific backend: service: - name: matabase + name: xta-test-server port: number: 8443 @@ -73,4 +73,4 @@ tests: asserts: - equal: path: spec.rules[0].host - value: matabase-helm.test.by.ozg-cloud.de + value: xta-test-server-helm.test.by.ozg-cloud.de -- GitLab From 85d09c53cd14b85e61bd0e6548af50fe43ecc28a Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 13 Jan 2025 13:16:24 +0100 Subject: [PATCH 53/56] OZG-7121 helm: Improve route --- src/main/helm/templates/route.yaml | 8 ++--- src/main/helm/values.yaml | 4 +++ src/test/helm/certificate_test.yaml | 1 + src/test/helm/route_test.yaml | 52 +++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 src/test/helm/route_test.yaml diff --git a/src/main/helm/templates/route.yaml b/src/main/helm/templates/route.yaml index 0f86471..3990bd3 100644 --- a/src/main/helm/templates/route.yaml +++ b/src/main/helm/templates/route.yaml @@ -2,13 +2,13 @@ kind: Route apiVersion: route.openshift.io/v1 metadata: name: {{ .Release.Name }}-passthrough - namespace: by-enable-dev + namespace: {{ include "app.namespace" . }} spec: host: {{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }} to: kind: Service - name: xta-test-server + name: {{ .Release.Name }} weight: 100 port: targetPort: 8443 @@ -18,6 +18,6 @@ spec: status: ingress: - host: {{ .Release.Name }}-passthrough-{{ include "app.baseDomain" . }} - routerName: default + routerName: {{ .Values.router.name }} wildcardPolicy: None - routerCanonicalHostname: router-default.apps.okd.dev.by.ozg-cloud.systems + routerCanonicalHostname: {{ .Values.router.hostname }} diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index 9fe80af..c1c3624 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -29,6 +29,10 @@ image: name: xta-test-server tag: latest +router: + name: default + hostname: router-default.apps.okd.dev.by.ozg-cloud.systems + clientCertificateCommonNames: - clientA - clientB diff --git a/src/test/helm/certificate_test.yaml b/src/test/helm/certificate_test.yaml index cf78c77..a5de4a8 100644 --- a/src/test/helm/certificate_test.yaml +++ b/src/test/helm/certificate_test.yaml @@ -63,6 +63,7 @@ tests: - equal: path: spec.dnsNames value: + - "xta-test-server-release-name-passthrough-helm.test.by.ozg-cloud.de" - "xta-test-server-release-name-helm.test.by.ozg-cloud.de" - it: should contain default lables and component lables asserts: diff --git a/src/test/helm/route_test.yaml b/src/test/helm/route_test.yaml new file mode 100644 index 0000000..f1d4859 --- /dev/null +++ b/src/test/helm/route_test.yaml @@ -0,0 +1,52 @@ +suite: test route.yaml +release: + name: releasename + namespace: sh-helm-test +templates: + - templates/route.yaml +set: + ozgcloud: + bezeichner: helm + baseUrl: test.by.ozg-cloud.de + +tests: + - it: check route kind + asserts: + - isKind: + of: Route + - it: should set passthrough hostname + asserts: + - equal: + path: spec.host + value: releasename-passthrough-helm.test.by.ozg-cloud.de + - it: should set service name + asserts: + - equal: + path: spec.to.name + value: releasename + - it: should set target port + asserts: + - equal: + path: spec.port.targetPort + value: 8443 + - it: should set passthrough tls termination + asserts: + - equal: + path: spec.tls.termination + value: passthrough + + - it: should set ingress passthrough hostname + asserts: + - equal: + path: status.ingress[0].host + value: releasename-passthrough-helm.test.by.ozg-cloud.de + - it: should set router name + asserts: + - equal: + path: status.ingress[0].routerName + value: default + - it: should set router hostname + asserts: + - equal: + path: status.ingress[0].routerCanonicalHostname + value: router-default.apps.okd.dev.by.ozg-cloud.systems -- GitLab From b50ebda47bf49d558771b293ee36de51edb3b516 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Mon, 13 Jan 2025 13:33:40 +0100 Subject: [PATCH 54/56] OZG-7121 helm: Add pipeline-steps for main and release --- .gitlab-ci.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 84b20f0..f209fe3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,6 +134,24 @@ push-snapshot-image-nexus: only: - main +push-snapshot-helm-nexus: + stage: publish + variables: + NEXUS_HELM_REPO_NAME: ozg-base-apps-snapshot + before_script: + - !reference [.get-version, before_script] + - !reference [.helm, before_script] + script: + - export HELM_CHART_VERSION=${PROJECT_VERSION}-main + - !reference [ .helm, script ] + - export HELM_CHART_VERSION=${PROJECT_VERSION}-main-${CI_COMMIT_SHORT_SHA} + - !reference [.helm, script] + only: + - main + artifacts: + paths: + - "*.tgz" + # Release jobs push-release-image-gitlab: stage: publish @@ -155,3 +173,19 @@ push-release-image-nexus: - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG + +push-release-helm-nexus: + stage: publish + variables: + NEXUS_HELM_REPO_NAME: ozg-base-apps + before_script: + - !reference [.get-version, before_script] + - !reference [.helm, before_script] + script: + - export HELM_CHART_VERSION=${PROJECT_VERSION} + - !reference [.helm, script] + rules: + - if: $CI_COMMIT_TAG + artifacts: + paths: + - "*.tgz" \ No newline at end of file -- GitLab From e8e9f843d9cdab447ebe6dcd8249c2c50523a350 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 14 Jan 2025 12:06:33 +0100 Subject: [PATCH 55/56] OZG-7121 helm: Fix test --- ...vice_account.yaml => deployment_service_account_test.yaml} | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename src/test/helm/{deployment_service_account.yaml => deployment_service_account_test.yaml} (91%) diff --git a/src/test/helm/deployment_service_account.yaml b/src/test/helm/deployment_service_account_test.yaml similarity index 91% rename from src/test/helm/deployment_service_account.yaml rename to src/test/helm/deployment_service_account_test.yaml index bc7d3d4..b1486aa 100644 --- a/src/test/helm/deployment_service_account.yaml +++ b/src/test/helm/deployment_service_account_test.yaml @@ -5,7 +5,9 @@ release: templates: - templates/deployment.yaml set: - imagePullSecret: test-image-pull-secret + ozgcloud: + environment: dev + imagePullSecret: image-pull-secret tests: - it: should use service account with default name set: -- GitLab From ea8d8086d36cfc18d80554a47c79471fa514bd35 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Tue, 14 Jan 2025 12:07:09 +0100 Subject: [PATCH 56/56] OZG-7121 gitlab: Use container registry --- .gitlab-ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f209fe3..eb9a5c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -120,10 +120,8 @@ push-snapshot-image-gitlab: script: - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main,${CI_REGISTRY_IMAGE}:${PROJECT_VERSION}-main-${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS - # only: - # - main - rules: - - when: never # Step disabled until gitlab container registry works + only: + - main push-snapshot-image-nexus: stage: publish @@ -162,7 +160,6 @@ push-release-image-gitlab: - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG - when: never # Step disabled until gitlab container registry works push-release-image-nexus: stage: publish -- GitLab