diff --git a/bruno/findUsers.bru b/bruno/findUsers.bru
index be68a02..e14b0de 100644
--- a/bruno/findUsers.bru
+++ b/bruno/findUsers.bru
@@ -10,6 +10,10 @@ get {
auth: basic
}
+headers {
+ operationName: findUsers
+}
+
auth:basic {
username: cxfrs
password: password
diff --git a/bruno/updateUser.bru b/bruno/updateUser.bru
new file mode 100644
index 0000000..5eca81a
--- /dev/null
+++ b/bruno/updateUser.bru
@@ -0,0 +1,28 @@
+meta {
+ name: updateUser
+ type: http
+ seq: 3
+}
+
+post {
+ url: http://localhost:9090/services/api/user
+ body: json
+ auth: basic
+}
+
+headers {
+ Content-Type: application/json
+ X-MethodName: updateUser
+}
+
+auth:basic {
+ username: cxfrs
+ password: password
+}
+
+body:json {
+ {
+ "id": 3,
+ "name": "Bruce Wayne"
+ }
+}
diff --git a/pom.xml b/pom.xml
index 7d08dd7..e320be0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,12 +81,6 @@
org.apache.camel.springboot
camel-jackson-starter
-
- org.apache.camel.springboot
- camel-disruptor-starter
-
-
-
com.fasterxml.jackson.jakarta.rs
jackson-jakarta-rs-json-provider
diff --git a/src/main/java/com/example/camel/CamelRouter.java b/src/main/java/com/example/camel/CamelRouter.java
index bb36e5c..d9da479 100644
--- a/src/main/java/com/example/camel/CamelRouter.java
+++ b/src/main/java/com/example/camel/CamelRouter.java
@@ -12,9 +12,9 @@ import jakarta.ws.rs.core.Response;
@Component
public class CamelRouter extends RouteBuilder {
- @Value("${app.queue-name}")
+ @Value("${app.queue-name}")
private String queueName;
-
+
@Override
public void configure() throws Exception {
// very raw way, just to handle the validation responses
@@ -24,12 +24,10 @@ public class CamelRouter extends RouteBuilder {
from("cxfrs:/api?resourceClasses=" + UserService.class.getName() + "&bindingStyle=SimpleConsumer"
+ "&providers=jaxrsProvider&loggingFeatureEnabled=true").to("log:cxfrs-log?showAll=true")
- .to("bean-validator:user").setHeader(Exchange.BEAN_METHOD_NAME, simple("${header.operationName}"))
- .to("activemq6:queue:"+queueName);
-
- from("activemq6:queue:"+queueName).to("log:activemq6-log?showAll=true").to("disruptor:UserDisruptor");
+ .setHeader(Exchange.BEAN_METHOD_NAME, simple("${header.operationName}"))
+ .to("activemq6:queue:" + queueName);
- from("disruptor:UserDisruptor").to("log:disruptor-log?showAll=true").bean(UserServiceImpl.class).marshal()
+ from("activemq6:queue:" + queueName).to("bean-validator:user").bean(UserServiceImpl.class).marshal()
.json(JsonLibrary.Jackson);
}
diff --git a/src/main/java/com/example/camel/SecurityConfig.java b/src/main/java/com/example/camel/SecurityConfig.java
index 3cb87d5..00ba67d 100644
--- a/src/main/java/com/example/camel/SecurityConfig.java
+++ b/src/main/java/com/example/camel/SecurityConfig.java
@@ -38,7 +38,7 @@ public class SecurityConfig {
http.authorizeHttpRequests(
(authorize) -> authorize.requestMatchers(HttpMethod.GET, "/**").hasAuthority(ROLE_BACKEND)
.requestMatchers(HttpMethod.POST, "/**").hasAuthority(ROLE_SERVER))
- .httpBasic(Customizer.withDefaults());
+ .httpBasic(Customizer.withDefaults()).csrf(csrf -> csrf.disable());
return http.build();
}
diff --git a/src/main/java/com/example/camel/User.java b/src/main/java/com/example/camel/User.java
index b244fcc..0fe2adb 100644
--- a/src/main/java/com/example/camel/User.java
+++ b/src/main/java/com/example/camel/User.java
@@ -1,5 +1,6 @@
package com.example.camel;
+import java.io.Serializable;
import java.util.StringJoiner;
import jakarta.validation.constraints.NotNull;
@@ -9,7 +10,8 @@ import jakarta.validation.constraints.Size;
* User entity
*
*/
-public class User {
+@SuppressWarnings("serial")
+public class User implements Serializable {
@NotNull(message = "custom message")
private Integer id;
diff --git a/src/main/java/com/example/camel/UserService.java b/src/main/java/com/example/camel/UserService.java
index 1edb41d..a65460d 100644
--- a/src/main/java/com/example/camel/UserService.java
+++ b/src/main/java/com/example/camel/UserService.java
@@ -5,12 +5,11 @@ import java.util.Collection;
import jakarta.validation.Valid;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.GET;
-import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response;
/**
* Service interface for managing users.
@@ -45,9 +44,9 @@ public interface UserService {
* @param user
* the user
*/
- @PUT
+ @POST
@Path("/user")
@Consumes(MediaType.APPLICATION_JSON)
- Response updateUser(@Valid User user);
+ User updateUser(@Valid User user);
}
\ No newline at end of file
diff --git a/src/main/java/com/example/camel/UserServiceImpl.java b/src/main/java/com/example/camel/UserServiceImpl.java
index 6bba16f..b80a002 100644
--- a/src/main/java/com/example/camel/UserServiceImpl.java
+++ b/src/main/java/com/example/camel/UserServiceImpl.java
@@ -4,8 +4,6 @@ import java.util.Collection;
import java.util.Map;
import java.util.TreeMap;
-import jakarta.ws.rs.core.Response;
-
public class UserServiceImpl implements UserService {
private final Map users = new TreeMap<>();
@@ -27,9 +25,9 @@ public class UserServiceImpl implements UserService {
}
@Override
- public Response updateUser(User user) {
+ public User updateUser(User user) {
users.put(user.getId(), user);
- return Response.noContent().status(Response.Status.CREATED).build();
+ return user;
}
}
\ No newline at end of file