From 050ac5d5260c7e4631adbe25eee30374ff8fd9c8 Mon Sep 17 00:00:00 2001
From: jez04 <david.jezek@post.cz>
Date: Thu, 8 May 2025 19:10:05 +0200
Subject: [PATCH] feat: src code to generate REST API client code

---
 .gitignore                                    |  16 +++
 pom.xml                                       | 125 ++++++++++++++++++
 src/main/java/cz/vsb/fei/restapi/App.java     |  29 ++++
 src/main/resources/log4j2.xml                 |  13 ++
 src/test/java/cz/vsb/fei/restapi/AppTest.java |  19 +++
 5 files changed, 202 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 pom.xml
 create mode 100644 src/main/java/cz/vsb/fei/restapi/App.java
 create mode 100644 src/main/resources/log4j2.xml
 create mode 100644 src/test/java/cz/vsb/fei/restapi/AppTest.java

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..98b99a5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,16 @@
+# Eclipse
+.classpath
+.project
+.settings/
+ 
+# Intellij
+.idea/
+*.iml
+*.iws
+ 
+# Mac
+.DS_Store
+ 
+# Maven
+log/
+target/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a9a0a7a
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,125 @@
+<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">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>cz.vsb.fei</groupId>
+	<artifactId>rest-api-generated-client-code</artifactId>
+	<version>0.0.1</version>
+
+	<name>rest-api-generated-client-code</name>
+
+	<packaging>jar</packaging>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<maven.compiler.release>21</maven.compiler.release>
+		<JUnit.version>5.11.0</JUnit.version>
+		<log4j.version>2.23.1</log4j.version>
+		<lombok.version>1.18.34</lombok.version>
+	</properties>
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.junit</groupId>
+				<artifactId>junit-bom</artifactId>
+				<version>${JUnit.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<version>${lombok.version}</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- Swagger dependencies BEGIN *********************************-->
+		<dependency>
+			<groupId>io.swagger.codegen.v3</groupId>
+			<artifactId>swagger-codegen-maven-plugin</artifactId>
+			<version>3.0.52</version>
+		</dependency>
+		<dependency>
+			<groupId>com.google.code.gson</groupId>
+			<artifactId>gson</artifactId>
+			<version>2.12.1</version>
+		</dependency>
+		<dependency>
+			<groupId>io.gsonfire</groupId>
+			<artifactId>gson-fire</artifactId>
+			<version>1.9.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.squareup.okhttp3</groupId>
+			<artifactId>okhttp</artifactId>
+			<version>4.12.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.squareup.okhttp3</groupId>
+			<artifactId>logging-interceptor</artifactId>
+			<version>4.12.0</version>
+		</dependency>
+		<!-- Swagger dependencies END** *********************************-->
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.openapitools</groupId>
+				<artifactId>openapi-generator-maven-plugin</artifactId>
+				<!-- RELEASE_VERSION -->
+				<version>7.13.0</version>
+				<!-- /RELEASE_VERSION -->
+				<executions>
+					<execution>
+						<goals>
+							<goal>generate</goal>
+						</goals>
+						<configuration>
+							<inputSpec>http://localhost:8080/v3/api-docs</inputSpec>
+							<generatorName>java</generatorName>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.13.0</version>
+				<configuration>
+					<annotationProcessorPaths>
+						<path>
+							<groupId>org.projectlombok</groupId>
+							<artifactId>lombok</artifactId>
+							<version>${lombok.version}</version>
+						</path>
+					</annotationProcessorPaths>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>3.5.0</version>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/src/main/java/cz/vsb/fei/restapi/App.java b/src/main/java/cz/vsb/fei/restapi/App.java
new file mode 100644
index 0000000..6f73f58
--- /dev/null
+++ b/src/main/java/cz/vsb/fei/restapi/App.java
@@ -0,0 +1,29 @@
+package cz.vsb.fei.restapi;
+
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.PlayerRestControllerApi;
+
+import lombok.extern.log4j.Log4j2;
+
+/**
+ *  Class <b>App</b> - main class
+ *  @author     Java I
+ */
+@Log4j2
+public class App {
+
+	public static void main(String[] args) {
+		log.info("Launching Java application.");
+
+		//Usage example
+//		PlayerRestControllerApi api = new PlayerRestControllerApi();
+//		api.setCustomBaseUrl("http://localhost:8080");
+//		
+//		try {
+//			api.getAll2(null, null, null).forEach(score -> log.info(score.toString()));
+//		} catch (ApiException e) {
+//			log.error("Chyba komunikace", e);
+//		}
+	}
+	
+}
\ No newline at end of file
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..acb3514
--- /dev/null
+++ b/src/main/resources/log4j2.xml
@@ -0,0 +1,13 @@
+<Configuration>
+	<Appenders>
+		<Console name="Console">
+			<PatternLayout
+				pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+		</Console>
+	</Appenders>
+	<Loggers>
+		<Root level="info">
+			<AppenderRef ref="Console"></AppenderRef>
+		</Root>
+	</Loggers>
+</Configuration>
diff --git a/src/test/java/cz/vsb/fei/restapi/AppTest.java b/src/test/java/cz/vsb/fei/restapi/AppTest.java
new file mode 100644
index 0000000..439f359
--- /dev/null
+++ b/src/test/java/cz/vsb/fei/restapi/AppTest.java
@@ -0,0 +1,19 @@
+package cz.vsb.fei.restapi;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit test for simple App.
+ */
+class AppTest {
+
+	/**
+	 * Rigorous Test :-)
+	 */
+	@Test
+	void shouldAnswerWithTrue() {
+		assertTrue(true);
+	}
+}
-- 
GitLab