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