Skip to content

Commit 2b1fed4

Browse files
committed
feat(ticketing-eai-client): init
1 parent dbdb095 commit 2b1fed4

File tree

7 files changed

+1499
-2
lines changed

7 files changed

+1499
-2
lines changed

.github/labeler.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@
44
- head-branch: [ '^bug', '-bug-' ]
55
"Template: personalization-service":
66
- changed-files:
7-
- any-glob-to-any-file: [ 'personalization-service/**' ]
7+
- any-glob-to-any-file: [ 'personalization-service/**' ]
8+
"Component: ticketing-eai":
9+
- changed-files:
10+
- any-glob-to-any-file: [ 'ticketing-eai/**' ]

.github/workflows/maven-node-build.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
include:
1818
- app-path: personalization-service
1919
- app-path: personalization-webcomponents
20+
- app-path: ticketing-eai/api-client
21+
build-image: false
2022

2123
steps:
2224
- uses: it-at-m/lhm_actions/action-templates/actions/action-checkout@9767179088fd2e344d1a24c17404ab809a60f1b6 # v1.0.20
@@ -30,7 +32,7 @@ jobs:
3032
uses: it-at-m/lhm_actions/action-templates/actions/action-maven-build@9767179088fd2e344d1a24c17404ab809a60f1b6 # v1.0.20
3133
with:
3234
app-path: ${{ matrix.app-path }}
33-
- if: github.ref == 'refs/heads/main'
35+
- if: github.ref == 'refs/heads/main' && matrix.build-image != 'false'
3436
uses: it-at-m/lhm_actions/action-templates/actions/action-build-image@9767179088fd2e344d1a24c17404ab809a60f1b6 # v1.0.20
3537
with:
3638
path: ${{ matrix.app-path }}

.github/workflows/maven-release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ on:
1717
required: true
1818
options:
1919
- personalization-service
20+
- ticketing-eai/api-client
2021

2122
jobs:
2223
release-maven:
@@ -40,6 +41,7 @@ jobs:
4041
GPG_PRIVATE_KEY: ${{ secrets.gpg_private_key }}
4142

4243
build-image:
44+
if: inputs.app-path != 'ticketing-eai/api-client'
4345
runs-on: ubuntu-latest
4446
needs: release-maven
4547
steps:

ticketing-eai/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# ticketing-eai
2+
3+
EAI (enterprise application integration) for Zammad API with different endpoints for internal and external clients.
4+
5+
```mermaid
6+
flowchart LR
7+
EAI -->|REST| Zammad
8+
ic[Internal Clients] -->|Internal REST API| EAI
9+
ec[External Clients] -->|External REST API| EAI
10+
```
11+
12+
## components
13+
14+
- eai-service: TBD
15+
- [api-client](./api-client): Spring Java Client for making request against EAI based on eai OpenAPI spec

ticketing-eai/api-client/pom.xml

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>org.springframework.boot</groupId>
6+
<artifactId>spring-boot-starter-parent</artifactId>
7+
<version>3.5.4</version>
8+
<relativePath/>
9+
</parent>
10+
11+
<groupId>de.muenchen.oss.dbs.ticketing.eai</groupId>
12+
<artifactId>api-client</artifactId>
13+
<name>api-client</name>
14+
<description>API client for dbs-ticketing-eai</description>
15+
<version>0.1.0-SNAPSHOT</version>
16+
<url>https://github.com/it-at-m/dbs</url>
17+
<licenses>
18+
<license>
19+
<name>MIT</name>
20+
<url>https://opensource.org/licenses/MIT</url>
21+
<distribution>repo</distribution>
22+
</license>
23+
</licenses>
24+
<scm>
25+
<url>https://github.com/it-at-m/dbs.git</url>
26+
<connection>scm:git:https://github.com/it-at-m/dbs.git</connection>
27+
<developerConnection>scm:git:https://github.com/it-at-m/dbs.git</developerConnection>
28+
<tag>HEAD</tag>
29+
</scm>
30+
<developers>
31+
<developer>
32+
<organization>it@M</organization>
33+
<email>[email protected]</email>
34+
<url>https://github.com/it-at-m</url>
35+
</developer>
36+
</developers>
37+
38+
<properties>
39+
<openapi-generator-maven-plugin.version>7.14.0</openapi-generator-maven-plugin.version>
40+
<jackson-databind-nullable.version>0.2.6</jackson-databind-nullable.version>
41+
42+
<!-- Release -->
43+
<central-publishing-maven-plugin.version>0.8.0</central-publishing-maven-plugin.version>
44+
<maven-release-plugin.version>3.1.1</maven-release-plugin.version>
45+
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
46+
</properties>
47+
48+
<dependencies>
49+
<!-- Spring -->
50+
<dependency>
51+
<groupId>org.springframework</groupId>
52+
<artifactId>spring-webflux</artifactId>
53+
</dependency>
54+
<dependency>
55+
<groupId>org.springframework.boot</groupId>
56+
<artifactId>spring-boot-starter-logging</artifactId>
57+
</dependency>
58+
<dependency>
59+
<groupId>org.springframework.boot</groupId>
60+
<artifactId>spring-boot-starter-validation</artifactId>
61+
</dependency>
62+
63+
<!-- openApi -->
64+
<dependency>
65+
<groupId>org.openapitools</groupId>
66+
<artifactId>jackson-databind-nullable</artifactId>
67+
<version>${jackson-databind-nullable.version}</version>
68+
</dependency>
69+
<dependency>
70+
<groupId>com.fasterxml.jackson.datatype</groupId>
71+
<artifactId>jackson-datatype-jsr310</artifactId>
72+
</dependency>
73+
</dependencies>
74+
75+
<build>
76+
<plugins>
77+
<!-- OpenAPI -->
78+
<plugin>
79+
<groupId>org.openapitools</groupId>
80+
<artifactId>openapi-generator-maven-plugin</artifactId>
81+
<version>${openapi-generator-maven-plugin.version}</version>
82+
<executions>
83+
<execution>
84+
<goals>
85+
<goal>generate</goal>
86+
</goals>
87+
<configuration>
88+
<inputSpec>${project.basedir}/src/main/resources/api-spec-without-security.json</inputSpec>
89+
<library>webclient</library>
90+
<generatorName>java</generatorName>
91+
92+
<apiPackage>de.muenchen.oss.dbs.ticketing.eai.client.api</apiPackage>
93+
<modelPackage>de.muenchen.oss.dbs.ticketing.eai.client.model</modelPackage>
94+
<invokerPackage>de.muenchen.oss.dbs.ticketing.eai.client</invokerPackage>
95+
96+
<serverVariableOverrides />
97+
<configOptions>
98+
<useJakartaEe>true</useJakartaEe>
99+
<useAbstractionForFiles>true</useAbstractionForFiles>
100+
</configOptions>
101+
</configuration>
102+
</execution>
103+
</executions>
104+
</plugin>
105+
<plugin>
106+
<groupId>org.apache.maven.plugins</groupId>
107+
<artifactId>maven-source-plugin</artifactId>
108+
<executions>
109+
<execution>
110+
<id>attach-sources</id>
111+
<goals>
112+
<goal>jar-no-fork</goal>
113+
</goals>
114+
</execution>
115+
</executions>
116+
</plugin>
117+
<plugin>
118+
<groupId>org.apache.maven.plugins</groupId>
119+
<artifactId>maven-javadoc-plugin</artifactId>
120+
<configuration>
121+
<doclint>accessibility,html,reference,syntax</doclint>
122+
</configuration>
123+
<executions>
124+
<execution>
125+
<id>attach-javadocs</id>
126+
<goals>
127+
<goal>jar</goal>
128+
</goals>
129+
</execution>
130+
</executions>
131+
</plugin>
132+
<!-- Release -->
133+
<plugin>
134+
<groupId>org.apache.maven.plugins</groupId>
135+
<artifactId>maven-release-plugin</artifactId>
136+
<version>${maven-release-plugin.version}</version>
137+
<configuration>
138+
<autoVersionSubmodules>true</autoVersionSubmodules>
139+
<useReleaseProfile>false</useReleaseProfile>
140+
<releaseProfiles>release</releaseProfiles>
141+
<goals>deploy</goals>
142+
</configuration>
143+
</plugin>
144+
</plugins>
145+
</build>
146+
147+
<profiles>
148+
<profile>
149+
<id>release</id>
150+
<build>
151+
<plugins>
152+
<!-- Central Portal Publishing Plugin -->
153+
<plugin>
154+
<groupId>org.sonatype.central</groupId>
155+
<artifactId>central-publishing-maven-plugin</artifactId>
156+
<version>${central-publishing-maven-plugin.version}</version>
157+
<extensions>true</extensions>
158+
<configuration>
159+
<autoPublish>true</autoPublish>
160+
<deploymentName>${project.groupId}:${project.artifactId}:${project.version}</deploymentName>
161+
</configuration>
162+
</plugin>
163+
<!-- GPG plugin -->
164+
<plugin>
165+
<groupId>org.apache.maven.plugins</groupId>
166+
<artifactId>maven-gpg-plugin</artifactId>
167+
<version>${maven-gpg-plugin.version}</version>
168+
<executions>
169+
<execution>
170+
<id>sign-artifacts</id>
171+
<phase>verify</phase>
172+
<goals>
173+
<goal>sign</goal>
174+
</goals>
175+
<configuration>
176+
<!-- Prevent `gpg` from using pinentry programs -->
177+
<gpgArguments>
178+
<arg>--pinentry-mode</arg>
179+
<arg>loopback</arg>
180+
</gpgArguments>
181+
</configuration>
182+
</execution>
183+
</executions>
184+
</plugin>
185+
</plugins>
186+
</build>
187+
</profile>
188+
</profiles>
189+
</project>

0 commit comments

Comments
 (0)