From 4808fb0975b729f03b83f65fe1a37debb551956d Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 13 Jul 2023 11:11:54 +0200 Subject: [PATCH] add autoconfiguration --- .../vorgang/dummy/DummyVorgangService.java | 2 +- ozg-cloud-spring-boot-starter/pom.xml | 44 +++++++++++++++++++ .../OzgCloudClientAutoConfiguration.java | 10 +++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../autoconfig/ApiLibTestApplication.java | 15 +++++++ .../autoconfigure/OzgCloudStarterITCase.java | 22 ++++++++++ pom.xml | 1 + 7 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 ozg-cloud-spring-boot-starter/pom.xml create mode 100644 ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java create mode 100644 ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/apilib/autoconfig/ApiLibTestApplication.java create mode 100644 ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudStarterITCase.java diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java index 1dfcab5..293e9fe 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java @@ -41,7 +41,7 @@ class DummyVorgangService implements OzgCloudVorgangService { .build(); private static final OzgCloudEingang EINGANG_2 = OzgCloudEingang.builder().build(); - private DummyVorgangService() { + public DummyVorgangService() { idToVorgang = buildMap(); vorgangs = initList(); } diff --git a/ozg-cloud-spring-boot-starter/pom.xml b/ozg-cloud-spring-boot-starter/pom.xml new file mode 100644 index 0000000..b18ffce --- /dev/null +++ b/ozg-cloud-spring-boot-starter/pom.xml @@ -0,0 +1,44 @@ +<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.ozgcloud.api-lib</groupId> + <artifactId>api-lib-parent</artifactId> + <version>0.1.0-SNAPSHOT</version> + </parent> + <artifactId>ozg-cloud-spring-boot-starter</artifactId> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-autoconfigure</artifactId> + </dependency> + + <dependency> + <groupId>de.ozgcloud.api-lib</groupId> + <artifactId>api-lib-core</artifactId> + <version>${project.version}</version> + </dependency> + + <!--Test --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-test-autoconfigure</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java new file mode 100644 index 0000000..0ef6d54 --- /dev/null +++ b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java @@ -0,0 +1,10 @@ +package de.ozgcloud.client.autoconfigure; + +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.ComponentScan; + +@AutoConfiguration +@ComponentScan(basePackages = "de.ozgcloud.apilib.**") +public class OzgCloudClientAutoConfiguration { + +} diff --git a/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..126a0de --- /dev/null +++ b/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +de.ozgcloud.client.autoconfigure.OzgCloudClientAutoConfiguration \ No newline at end of file diff --git a/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/apilib/autoconfig/ApiLibTestApplication.java b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/apilib/autoconfig/ApiLibTestApplication.java new file mode 100644 index 0000000..ad8ddb0 --- /dev/null +++ b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/apilib/autoconfig/ApiLibTestApplication.java @@ -0,0 +1,15 @@ +package de.ozgcloud.apilib.autoconfig; + +import java.util.TimeZone; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ApiLibTestApplication { + + public static void main(String[] args) { + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); + SpringApplication.run(ApiLibTestApplication.class, args); + } +} diff --git a/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudStarterITCase.java b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudStarterITCase.java new file mode 100644 index 0000000..175c478 --- /dev/null +++ b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudStarterITCase.java @@ -0,0 +1,22 @@ +package de.ozgcloud.client.autoconfigure; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import de.ozgcloud.apilib.autoconfig.ApiLibTestApplication; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; + +@SpringBootTest(classes = ApiLibTestApplication.class) +class OzgCloudStarterITCase { + + @Autowired(required = false) + private OzgCloudVorgangService vorgangService; + + @Test + void shouldInitializeVorgangService() { + assertThat(vorgangService).isNotNull(); + } +} diff --git a/pom.xml b/pom.xml index f31c792..d89c2f7 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,7 @@ <packaging>pom</packaging> <modules> <module>api-lib-core</module> + <module>ozg-cloud-spring-boot-starter</module> </modules> </project> \ No newline at end of file -- GitLab