Skip to content

Commit

Permalink
Merge pull request #18 from sumeet-srknec/feature
Browse files Browse the repository at this point in the history
made swagger et al changes. working
  • Loading branch information
sumeet-srknec authored Aug 30, 2024
2 parents 9152ac9 + 9e3f2cc commit cf7c8ac
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 48 deletions.
15 changes: 12 additions & 3 deletions demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,20 @@
<url/>
</scm>
<properties>
<java.version>17</java.version>
<!-- <java.version>21</java.version> -->
<swagger.version>2.9.2</swagger.version>
<swagger-annotations.version>1.5.21</swagger-annotations.version>
<swagger-models.version>1.5.21</swagger-models.version>
</properties>

<dependencies>

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
Expand Down Expand Up @@ -91,7 +98,7 @@
<scope>runtime</scope>
</dependency>

<dependency>
<!-- <dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>${swagger-models.version}</version>
Expand All @@ -111,7 +118,7 @@
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-annotations.version}</version>
</dependency>
</dependency> -->

<dependency>
<groupId>org.slf4j</groupId>
Expand All @@ -122,6 +129,8 @@
<artifactId>slf4j-log4j12</artifactId>
</dependency>



</dependencies>

<build>
Expand Down
36 changes: 0 additions & 36 deletions demo/src/main/java/com/ssharma/demo/DemoApplication.java
Original file line number Diff line number Diff line change
@@ -1,48 +1,12 @@
package com.ssharma.demo;

import java.util.ArrayList;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;

import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


@SpringBootApplication
@EnableSwagger2
@ComponentScan(basePackages = {"com.ssharma.demo", "com.ssharma.demo.*"})
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}


/**
* Initialize Swagger documentation
*
* @return
*/
private ApiInfo getApiInfo() {

return new ApiInfo("spring-elastic-redis Service API's", "spring-elastic-redis Service REST calls", "1.0.0",
"https://www.ssharma.com/",
new springfox.documentation.service.Contact("spring-elastic-redis", "https://spring-elastic-redis/",
"DL: spring-elastic-redis"),
String.format("Copyright (c) 2024 ssharma Corporation. All rights reserved."), "https://www.ssharma.com/",
new ArrayList<>());

}

@Bean
public Docket getDocket() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.ssharma.demo")).build().apiInfo(getApiInfo());
}
}
20 changes: 20 additions & 0 deletions demo/src/main/java/com/ssharma/demo/config/CorsConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.ssharma.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigure() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedMethods("*").allowedOrigins("*")
.allowedHeaders("*");
}
};
}
}
28 changes: 28 additions & 0 deletions demo/src/main/java/com/ssharma/demo/config/SwaggerConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.ssharma.demo.config;

import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.annotations.security.OAuthFlow;
import io.swagger.v3.oas.annotations.security.OAuthFlows;
import io.swagger.v3.oas.annotations.security.OAuthScope;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.security.SecurityScheme;
import io.swagger.v3.oas.annotations.servers.Server;

@OpenAPIDefinition(
info = @Info(title = "Search Service API", description = "Search API documentation", version = "1.0"),
security = @SecurityRequirement(name = "oauth2_bearer"),
servers = {@Server(url = "${server.servlet.context-path}", description = "Default Server URL")})
@SecurityScheme(
name = "oauth2_bearer", type = SecuritySchemeType.OAUTH2,
flows = @OAuthFlows(
authorizationCode = @OAuthFlow(
authorizationUrl = "${springdoc.oauthflow.authorization-url}",
tokenUrl = "${springdoc.oauthflow.token-url}",
scopes = {
@OAuthScope(name = "openid", description = "openid")
})
))
public class SwaggerConfig {
}
13 changes: 10 additions & 3 deletions demo/src/main/resources/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
# Use an official Java runtime as a parent image
FROM openjdk:17-jdk-alpine
FROM eclipse-temurin:21-jre-alpine

# Add bash
RUN apk add --no-cache bash

# Set the working directory in the container
WORKDIR /app

# Add shell script that will wait for elastic-search to start gracefully
COPY wait-for-it.sh wait-for-it.sh
RUN chmod +x wait-for-it.sh

# Copy the project jar file to the container
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
COPY demo-0.0.1-SNAPSHOT.jar app.jar

# Expose the port that the application will run on
EXPOSE 8080

# Run the jar file
ENTRYPOINT ["java", "-jar", "service.jar"]
ENTRYPOINT ["java", "-jar", "app.jar"]
32 changes: 26 additions & 6 deletions demo/src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
spring.application.name=demo
spring.application.name=dashboard
server.servlet.context-path=/dashboard

# H2 Database Configuration
spring.datasource.url=jdbc:h2:file:./data/db
Expand All @@ -16,12 +17,31 @@ spring.jpa.properties.hibernate.format_sql=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console


# Elasticsearch Configuration
spring.elasticsearch.rest.uris=http://invstatdocker01:9200

spring.elasticsearch.rest.uris=http://elasticsearch:9200

# Redis Configuration
spring.redis.host=invstatdocker01
spring.redis.port=7000
spring.redis.host=redis
spring.redis.port=6379

# ---------------

server.port=8083

spring.threads.virtual.enabled=true
management.tracing.sampling.probability=1.0
management.endpoints.web.exposure.include=prometheus
management.metrics.distribution.percentiles-histogram.http.server.requests=true
management.metrics.tags.application=${spring.application.name}

logging.pattern.level=%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]

spring.security.oauth2.resourceserver.jwt.issuer-uri=http://identity/realms/detecto

# swagger-ui custom path
springdoc.swagger-ui.path=/swagger-ui
springdoc.packagesToScan=com.ssharma.demo
springdoc.swagger-ui.oauth.use-pkce-with-authorization-code-grant=true
springdoc.swagger-ui.oauth.client-id=swagger-ui
springdoc.oauthflow.authorization-url=http://identity/realms/detecto/protocol/openid-connect/auth
springdoc.oauthflow.token-url=http://identity/realms/detecto/protocol/openid-connect/token

0 comments on commit cf7c8ac

Please sign in to comment.