diff --git a/.oktetoignore b/.oktetoignore
new file mode 100644
index 00000000..0e14270b
--- /dev/null
+++ b/.oktetoignore
@@ -0,0 +1,3 @@
+.git
+.github
+.vscode
\ No newline at end of file
diff --git a/api/go.mod b/api/go.mod
index 504bc24e..d4865554 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -1,6 +1,6 @@
module github.com/okteto/movies
-go 1.17
+go 1.22
require github.com/lib/pq v1.10.5
diff --git a/catalog/Dockerfile b/catalog/Dockerfile
index d38ba43d..17cc8886 100644
--- a/catalog/Dockerfile
+++ b/catalog/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:16
+FROM node:20
WORKDIR /src
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
index 788a12c0..e5d443e3 100644
--- a/frontend/Dockerfile
+++ b/frontend/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:16 AS dev
+FROM node:20 AS dev
# setup okteto message
COPY bashrc /root/.bashrc
diff --git a/rent/Dockerfile b/rent/Dockerfile
index 9c46b037..a04e2828 100644
--- a/rent/Dockerfile
+++ b/rent/Dockerfile
@@ -1,8 +1,20 @@
-FROM maven:3.8.1-jdk-11
+FROM maven:3.9.8-eclipse-temurin-21
WORKDIR /app
-COPY . .
+
+# copy the project files
+COPY ./pom.xml ./pom.xml
+
+
+# build all dependencies for offline use
+RUN mvn dependency:go-offline -B
+
+# copy the src files
+COPY ./src ./src
+
+# build for release
RUN mvn clean package
+
RUN cp ./target/*.jar app.jar
EXPOSE 8080
diff --git a/rent/pom.xml b/rent/pom.xml
index 5ebb8f6e..ae63298f 100644
--- a/rent/pom.xml
+++ b/rent/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.5.6
+ 3.3.2
com.okteto
@@ -14,7 +14,7 @@
rent
Rent backend service for Movies App
- 11
+ 21
@@ -48,7 +48,7 @@
ognl
ognl
- 3.2.21
+ 3.4.3
org.springframework.boot
diff --git a/rent/src/main/java/com/okteto/rent/controller/RentController.java b/rent/src/main/java/com/okteto/rent/controller/RentController.java
index a8959b34..fcbe8a9e 100644
--- a/rent/src/main/java/com/okteto/rent/controller/RentController.java
+++ b/rent/src/main/java/com/okteto/rent/controller/RentController.java
@@ -6,14 +6,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
-import org.springframework.util.concurrent.ListenableFuture;
-import org.springframework.util.concurrent.ListenableFutureCallback;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
-import javax.servlet.http.HttpServletResponse;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -34,29 +31,21 @@ Map healthz() {
}
@PostMapping(path= "/rent", consumes = "application/json", produces = "application/json")
- List rent(@RequestBody Rent rentInput, HttpServletResponse response) {
+ List rent(@RequestBody Rent rentInput) {
String catalogID = rentInput.getMovieID();
String price = rentInput.getPrice();
logger.info("Rent [{},{}] received", catalogID, price);
- ListenableFuture> future = kafkaTemplate.send(KAFKA_TOPIC, catalogID, price);
-
- future.addCallback(new ListenableFutureCallback>() {
- @Override
- public void onSuccess(SendResult result) {
- logger.info("Message [{}] delivered with offset {}",
- catalogID,
- result.getRecordMetadata().offset());
- }
-
- @Override
- public void onFailure(Throwable ex) {
- logger.warn("Unable to deliver message [{}]. {}",
+ kafkaTemplate.send(KAFKA_TOPIC, catalogID, price)
+ .thenAccept(result -> logger.info("Message [{}] delivered with offset {}",
catalogID,
- ex.getMessage());
- }
+ result.getRecordMetadata().offset()))
+ .exceptionally(ex -> {
+ logger.warn("Unable to deliver message [{}]. {}", catalogID, ex.getMessage());
+ return null;
});
+
return new LinkedList<>();
}
diff --git a/worker/go.mod b/worker/go.mod
index a072cf8f..edbbf495 100644
--- a/worker/go.mod
+++ b/worker/go.mod
@@ -1,6 +1,6 @@
module github.com/okteto/movies
-go 1.17
+go 1.22
require (
github.com/Shopify/sarama v1.32.0