diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 271397a..b38cbb0 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,15 +7,15 @@ - + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 4d92f14..ce1fbb5 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 42b8d99..edd914b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,6 +7,7 @@ diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eurika/.gitignore b/eureka/.gitignore similarity index 100% rename from eurika/.gitignore rename to eureka/.gitignore diff --git a/eurika/.mvn/wrapper/maven-wrapper.properties b/eureka/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from eurika/.mvn/wrapper/maven-wrapper.properties rename to eureka/.mvn/wrapper/maven-wrapper.properties diff --git a/eurika/mvnw b/eureka/mvnw old mode 100755 new mode 100644 similarity index 100% rename from eurika/mvnw rename to eureka/mvnw diff --git a/eurika/mvnw.cmd b/eureka/mvnw.cmd similarity index 100% rename from eurika/mvnw.cmd rename to eureka/mvnw.cmd diff --git a/eurika/pom.xml b/eureka/pom.xml similarity index 88% rename from eurika/pom.xml rename to eureka/pom.xml index 763bba1..4be19e3 100644 --- a/eurika/pom.xml +++ b/eureka/pom.xml @@ -9,20 +9,23 @@ com.learningpulse - eurika + eureka 0.0.1-SNAPSHOT - eurika + eureka Demo project for Spring Boot 22 2023.0.1 + org.springframework.cloud spring-cloud-starter-netflix-eureka-server + 4.1.1 + org.springframework.boot spring-boot-starter-test diff --git a/eurika/src/main/java/com/learningpulse/eurika/EurikaApplication.java b/eureka/src/main/java/com/learningpulse/eurika/EurekaApplication.java similarity index 55% rename from eurika/src/main/java/com/learningpulse/eurika/EurikaApplication.java rename to eureka/src/main/java/com/learningpulse/eurika/EurekaApplication.java index 2c9a7b4..17c4ad9 100644 --- a/eurika/src/main/java/com/learningpulse/eurika/EurikaApplication.java +++ b/eureka/src/main/java/com/learningpulse/eurika/EurekaApplication.java @@ -2,12 +2,14 @@ package com.learningpulse.eurika; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; +@EnableEurekaServer @SpringBootApplication -public class EurikaApplication { +public class EurekaApplication { public static void main(String[] args) { - SpringApplication.run(EurikaApplication.class, args); + SpringApplication.run(EurekaApplication.class, args); } } diff --git a/eureka/src/main/resources/application.properties b/eureka/src/main/resources/application.properties new file mode 100644 index 0000000..bb67d3e --- /dev/null +++ b/eureka/src/main/resources/application.properties @@ -0,0 +1,10 @@ +spring.application.name=eureka + +server.port=8761 + +spring.security.user.name=admin +spring.security.user.password=admin + +eureka.instance.hostname=localhost +eureka.client.register-with-eureka=false +eureka.client.fetch-registry=false \ No newline at end of file diff --git a/eurika/src/test/java/com/learningpulse/eurika/EurikaApplicationTests.java b/eureka/src/test/java/com/learningpulse/eurika/EurekaApplicationTests.java similarity index 85% rename from eurika/src/test/java/com/learningpulse/eurika/EurikaApplicationTests.java rename to eureka/src/test/java/com/learningpulse/eurika/EurekaApplicationTests.java index 78314ba..f97e926 100644 --- a/eurika/src/test/java/com/learningpulse/eurika/EurikaApplicationTests.java +++ b/eureka/src/test/java/com/learningpulse/eurika/EurekaApplicationTests.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest -class EurikaApplicationTests { +class EurekaApplicationTests { @Test void contextLoads() { diff --git a/eurika/src/main/resources/application.properties b/eurika/src/main/resources/application.properties deleted file mode 100644 index 2eb1f79..0000000 --- a/eurika/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=eurika diff --git a/gateway/pom.xml b/gateway/pom.xml index fde2962..89ecf18 100644 --- a/gateway/pom.xml +++ b/gateway/pom.xml @@ -17,6 +17,10 @@ 22 2023.0.1 + org.springframework.boot @@ -36,6 +40,7 @@ lombok true + org.springframework.boot spring-boot-starter-test @@ -46,6 +51,15 @@ spring-restdocs-mockmvc test + + org.springframework.boot + spring-boot-starter-security + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.2.0 + diff --git a/gateway/src/main/java/com/learningpulse/gateway/GatewayApplication.java b/gateway/src/main/java/com/learningpulse/gateway/GatewayApplication.java index f4cdf2f..511cf50 100644 --- a/gateway/src/main/java/com/learningpulse/gateway/GatewayApplication.java +++ b/gateway/src/main/java/com/learningpulse/gateway/GatewayApplication.java @@ -2,12 +2,14 @@ package com.learningpulse.gateway; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@EnableDiscoveryClient @SpringBootApplication public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class, args); } - } diff --git a/gateway/src/main/java/com/learningpulse/gateway/SimpleGateway.java b/gateway/src/main/java/com/learningpulse/gateway/SimpleGateway.java new file mode 100644 index 0000000..c68fc03 --- /dev/null +++ b/gateway/src/main/java/com/learningpulse/gateway/SimpleGateway.java @@ -0,0 +1,14 @@ +package com.learningpulse.gateway; +import org.springframework.context.annotation.Bean; +import org.springframework.web.servlet.function.RouterFunction; +import org.springframework.web.servlet.function.ServerResponse; + +import static org.springframework.web.servlet.function.RouterFunctions.route; +import static org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions.http; + +public class SimpleGateway { + @Bean + public RouterFunction getRoute() { + return route().GET("/get", http("https://httpbin.org")).build(); + } +} diff --git a/gateway/src/main/java/com/learningpulse/gateway/config/Appconfig.java b/gateway/src/main/java/com/learningpulse/gateway/config/Appconfig.java new file mode 100644 index 0000000..04ba084 --- /dev/null +++ b/gateway/src/main/java/com/learningpulse/gateway/config/Appconfig.java @@ -0,0 +1,15 @@ +package com.learningpulse.gateway.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.function.RouterFunction; +import org.springframework.web.servlet.function.ServerResponse; + +import org.springframework.web.servlet.function.RouterFunctions; + + +// TODO copy lambda code lol +@Configuration(proxyBeanMethods = false) +public class Appconfig { + +} diff --git a/gateway/src/main/resources/application.properties b/gateway/src/main/resources/application.properties index 6365994..811acbf 100644 --- a/gateway/src/main/resources/application.properties +++ b/gateway/src/main/resources/application.properties @@ -1 +1,25 @@ spring.application.name=gateway +app.eureka-server=localhost + +eureka.client.service-url.defaultZone=http://localhost:8761/eureka +server.port=8181 +server.servlet.context-path=/ + +spring.cloud.discovery.enabled=true + +# TODO change these back to lambda's stuffs +spring.cloud.gateway.mvc.routes[0].id=discovery-server +spring.cloud.gateway.mvc.routes[0].uri=http://${app.eureka-server}:8761 +spring.cloud.gateway.mvc.routes[0].predicates[0]=Path=/eureka/web +spring.cloud.gateway.mvc.routes[0].filters[0]=SetPath=/ + +springdoc.enable-javadoc=true +springdoc.api-docs.enabled=true +springdoc.api-docs.groups.enabled=true +springdoc.swagger-ui.enabled=true +springdoc.swagger-ui.path=/swagger-ui.html +springdoc.swagger-ui.config-url=/v3/api-docs/swagger-config + + +springdoc.swagger-ui.urls[0].name=Api Gateway APIs +springdoc.swagger-ui.urls[0].url=/v3/api-docs \ No newline at end of file