diff --git a/spring-boot-modules/spring-boot-libraries-2/pom.xml b/spring-boot-modules/spring-boot-libraries-2/pom.xml
index 35dec54450..629b713cb5 100644
--- a/spring-boot-modules/spring-boot-libraries-2/pom.xml
+++ b/spring-boot-modules/spring-boot-libraries-2/pom.xml
@@ -16,6 +16,14 @@
org.springframework.boot
spring-boot-starter-web
+
+ ch.qos.logback
+ logback-classic
+
+
+ org.springframework.data
+ spring-data-jpa
+
@@ -23,6 +31,23 @@
jobrunr-spring-boot-starter
${jobrunr.version}
+
+
+
+ org.openapitools
+ openapi-generator
+ ${openapi-generator.version}
+
+
+ org.openapitools
+ jackson-databind-nullable
+ ${jackson-databind.version}
+
+
+ io.springfox
+ springfox-swagger2
+ ${springfox.version}
+
org.springframework.boot
@@ -37,10 +62,45 @@
test
+
+
+
+
+ org.openapitools
+ openapi-generator-maven-plugin
+ ${openapi-generator.version}
+
+
+
+ generate
+
+
+
+ ${project.basedir}/src/main/resources/petstore.yml
+
+ spring
+ com.baeldung.openapi.api
+ com.baeldung.openapi.model
+
+ ApiUtil.java
+
+
+ true
+
+
+
+
+
+
+
1.1.0
4.0.3
+ 5.1.0
+ 2.4.5
+ 0.2.1
+ 2.9.2
diff --git a/spring-boot-modules/spring-boot-libraries-2/src/main/java/com/baeldung/jobrunr/JobRunrSpringBootApp.java b/spring-boot-modules/spring-boot-libraries-2/src/main/java/com/baeldung/JobRunrSpringBootApp.java
similarity index 97%
rename from spring-boot-modules/spring-boot-libraries-2/src/main/java/com/baeldung/jobrunr/JobRunrSpringBootApp.java
rename to spring-boot-modules/spring-boot-libraries-2/src/main/java/com/baeldung/JobRunrSpringBootApp.java
index d72e9464d9..77297feb92 100644
--- a/spring-boot-modules/spring-boot-libraries-2/src/main/java/com/baeldung/jobrunr/JobRunrSpringBootApp.java
+++ b/spring-boot-modules/spring-boot-libraries-2/src/main/java/com/baeldung/JobRunrSpringBootApp.java
@@ -1,4 +1,4 @@
-package com.baeldung.jobrunr;
+package com.baeldung;
import com.baeldung.jobrunr.service.SampleJobService;
import org.jobrunr.jobs.mappers.JobMapper;
diff --git a/spring-boot-modules/spring-boot-libraries-2/src/main/resources/petstore.yml b/spring-boot-modules/spring-boot-libraries-2/src/main/resources/petstore.yml
new file mode 100644
index 0000000000..3265a18c3e
--- /dev/null
+++ b/spring-boot-modules/spring-boot-libraries-2/src/main/resources/petstore.yml
@@ -0,0 +1,111 @@
+openapi: "3.0.0"
+info:
+ version: 1.0.0
+ title: Swagger Petstore
+ license:
+ name: MIT
+servers:
+ - url: http://localhost:8080/
+paths:
+ /pets:
+ get:
+ summary: List all pets
+ operationId: listPets
+ tags:
+ - pets
+ parameters:
+ - name: limit
+ in: query
+ description: How many items to return at one time (max 100)
+ required: false
+ schema:
+ type: integer
+ format: int32
+ responses:
+ '200':
+ description: A paged array of pets
+ headers:
+ x-next:
+ description: A link to the next page of responses
+ schema:
+ type: string
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Pets"
+ default:
+ description: unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ post:
+ summary: Create a pet
+ operationId: createPets
+ tags:
+ - pets
+ responses:
+ '201':
+ description: Null response
+ default:
+ description: unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ /pets/{petId}:
+ get:
+ summary: Info for a specific pet
+ operationId: showPetById
+ tags:
+ - pets
+ parameters:
+ - name: petId
+ in: path
+ required: true
+ description: The id of the pet to retrieve
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Expected response to a valid request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Pet"
+ default:
+ description: unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+components:
+ schemas:
+ Pet:
+ type: object
+ required:
+ - id
+ - name
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ tag:
+ type: string
+ Pets:
+ type: array
+ items:
+ $ref: "#/components/schemas/Pet"
+ Error:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
\ No newline at end of file
diff --git a/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/jobrunr/JobRunrLiveTest.java b/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/jobrunr/JobRunrLiveTest.java
index 83222e7726..2c259b6879 100644
--- a/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/jobrunr/JobRunrLiveTest.java
+++ b/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/jobrunr/JobRunrLiveTest.java
@@ -10,6 +10,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;
+import com.baeldung.JobRunrSpringBootApp;
+
import java.net.URI;
import java.util.concurrent.TimeUnit;
diff --git a/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/openapi/OpenApiPetsIntegrationTest.java b/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/openapi/OpenApiPetsIntegrationTest.java
new file mode 100644
index 0000000000..b14f0e11b5
--- /dev/null
+++ b/spring-boot-modules/spring-boot-libraries-2/src/test/java/com/baeldung/openapi/OpenApiPetsIntegrationTest.java
@@ -0,0 +1,33 @@
+package com.baeldung.openapi;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@AutoConfigureMockMvc
+public class OpenApiPetsIntegrationTest {
+
+ private static final String PETS_PATH = "/pets/";
+
+ @Autowired
+ private MockMvc mockMvc;
+
+ @Test
+ public void whenReadAll_thenStatusIsNotImplemented() throws Exception {
+ this.mockMvc.perform(get(PETS_PATH)).andExpect(status().isNotImplemented());
+ }
+
+ @Test
+ public void whenReadOne_thenStatusIsNotImplemented() throws Exception {
+ this.mockMvc.perform(get(PETS_PATH + 1)).andExpect(status().isNotImplemented());
+ }
+}
\ No newline at end of file