diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..ae89d58 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +customizations \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..f832908 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1c1e243 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index f68b6d1..c7c26ea 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Download JDK from [adoptium.net](https://adoptium.net/temurin/releases/) ## How to compile the project ``` -JAVA_HOME=/home/user/JDK/jdk-17 ./gradlew clean jar +JAVA_HOME=/home/user/JDK/jdk-21 ./gradlew clean jar ``` ## For Developers diff --git a/customization-rest-controller/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/ExampleController.java b/customization-rest-controller/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/ExampleController.java new file mode 100644 index 0000000..a8d0021 --- /dev/null +++ b/customization-rest-controller/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/ExampleController.java @@ -0,0 +1,36 @@ +package com.intland.codebeamer.controller.rest.internal.v2.customization; + +import com.intland.codebeamer.controller.rest.v2.AbstractRestController; +import com.intland.codebeamer.controller.rest.v2.exception.TooManyRequestsException; +import io.swagger.v3.oas.annotations.OpenAPIDefinition; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.apache.log4j.Logger; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +@OpenAPIDefinition +@RestController +@RequestMapping(AbstractRestController.API_URI_V3) +public class ExampleController extends AbstractRestController +{ + public static final Logger logger = Logger.getLogger(ExampleController.class); + + @Operation(summary = "Get example greetings", tags = "Example") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "OK "), + @ApiResponse(responseCode = "403", description = "Authentication is required"), + @ApiResponse(responseCode = "404", description = "Not found"), + @ApiResponse(responseCode = "429", description = "Too many requests", content = @Content(schema = @Schema(implementation = TooManyRequestsException.class))) + }) + @RequestMapping(value = "example", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE) + public @ResponseBody String getHello() { + return "Hello PTC!"; + } +} diff --git a/example-swagger-api/README.md b/example-swagger-api/README.md new file mode 100644 index 0000000..5adc9f5 --- /dev/null +++ b/example-swagger-api/README.md @@ -0,0 +1,3 @@ +# Example GET Swagger API Endpoint + +When called, it returns 'Hello PTC!'. diff --git a/example-swagger-api/build.gradle b/example-swagger-api/build.gradle new file mode 100644 index 0000000..648603b --- /dev/null +++ b/example-swagger-api/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'java-library' +} \ No newline at end of file diff --git a/customization-rest-controller/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/CustomizationRestController.java b/example-swagger-api/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/CustomizationRestController.java similarity index 100% rename from customization-rest-controller/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/CustomizationRestController.java rename to example-swagger-api/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/CustomizationRestController.java diff --git a/settings.gradle b/settings.gradle index 90c351c..a9a6221 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,3 +7,6 @@ include ':my-openapi-project' include ':my-file-processor' include ':my-gitpr-project' include ':customization-rest-controller' +include ':welcome-api' +include ':example-swagger-api' + diff --git a/welcome-api/README.md b/welcome-api/README.md new file mode 100644 index 0000000..ae30abc --- /dev/null +++ b/welcome-api/README.md @@ -0,0 +1,3 @@ +# Say Hello API + +Saying Hello PTC upon calling it. diff --git a/welcome-api/build.gradle b/welcome-api/build.gradle new file mode 100644 index 0000000..648603b --- /dev/null +++ b/welcome-api/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'java-library' +} \ No newline at end of file diff --git a/welcome-api/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/ExampleController.java b/welcome-api/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/ExampleController.java new file mode 100644 index 0000000..d8cb3d6 --- /dev/null +++ b/welcome-api/src/main/java/com/intland/codebeamer/controller/rest/internal/v2/customization/ExampleController.java @@ -0,0 +1,33 @@ +package com.intland.codebeamer.controller.rest.internal.v2.customization; + +import com.intland.codebeamer.controller.rest.v2.AbstractRestController; +import com.intland.codebeamer.controller.rest.v2.exception.*; +import org.apache.log4j.Logger; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import io.swagger.v3.oas.annotations.OpenAPIDefinition; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; + +@OpenAPIDefinition +@RestController +@RequestMapping(AbstractRestController.API_URI_V3) +public class ExampleController extends AbstractRestController +{ + public static final Logger logger = Logger.getLogger(ExampleController.class); + + @Operation(summary = "Get example greetings", tags = "Example") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "OK "), + @ApiResponse(responseCode = "403", description = "Authentication is required"), + @ApiResponse(responseCode = "404", description = "Not found"), + @ApiResponse(responseCode = "429", description = "Too many requests", content = @Content(schema = @Schema(implementation = TooManyRequestsException.class))) + }) + @RequestMapping(value = "example", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE) + public @ResponseBody String getHello() { + return "Hello PTC!"; + } +}