Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
order-management-backend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ascend
order-management-backend
Commits
56b34f30
Commit
56b34f30
authored
May 13, 2021
by
Shanelle Valencia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AFP-53]
✨
Added endpoint testing for kafka update [
@svalencia
]
parent
78aa876f
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
52 additions
and
15 deletions
+52
-15
KafkaConfig.java
...main/java/com/afp/ordermanagement/config/KafkaConfig.java
+1
-1
OrderController.java
...a/com/afp/ordermanagement/controller/OrderController.java
+9
-0
Receiver.java
...om/afp/ordermanagement/reactivekafkaservice/Receiver.java
+26
-14
Sender.java
.../com/afp/ordermanagement/reactivekafkaservice/Sender.java
+15
-0
application.properties
src/main/resources/application.properties
+1
-0
No files found.
src/main/java/com/afp/ordermanagement/config/KafkaConfig.java
View file @
56b34f30
...
...
@@ -66,7 +66,7 @@ public class KafkaConfig {
}
@Bean
public
KafkaReceiver
<
String
,
String
>
kafkaEventReceiver
(
@Value
(
"${kafka.topic.
in
put}"
)
String
posLogTopic
)
{
public
KafkaReceiver
<
String
,
String
>
kafkaEventReceiver
(
@Value
(
"${kafka.topic.
out
put}"
)
String
posLogTopic
)
{
ReceiverOptions
<
String
,
String
>
receiverOptions
=
ReceiverOptions
.
create
(
consumerFactory
());
receiverOptions
.
maxCommitAttempts
(
3
);
return
KafkaReceiver
.
create
(
receiverOptions
.
addAssignListener
(
Collection:
:
iterator
).
subscription
(
Collections
.
singleton
(
posLogTopic
)));
...
...
src/main/java/com/afp/ordermanagement/controller/OrderController.java
View file @
56b34f30
...
...
@@ -42,6 +42,15 @@ public class OrderController {
}
@PostMapping
(
"/orderStatus"
)
@ResponseStatus
(
HttpStatus
.
CREATED
)
public
Mono
<
Order
>
getUpdatedOrderFromWarehouseTopic
(
@RequestBody
Order
order
)
{
sender
.
sendUpdatedOrderToWarehouseTopic
(
order
);
return
orderService
.
updateOrderByOrderId
(
order
.
getId
(),
order
);
}
@GetMapping
(
"/orders"
)
@CrossOrigin
public
Flux
<
Order
>
getAllOrders
(){
...
...
src/main/java/com/afp/ordermanagement/reactivekafkaservice/Receiver.java
View file @
56b34f30
...
...
@@ -41,9 +41,16 @@ public class Receiver {
@EventListener
(
ApplicationStartedEvent
.
class
)
public
void
consumeOrderStatus
()
{
kafkaReceiver
.
receive
()
// .doOnNext(record -> System.out.println(record))
// .doOnNext(record -> log.info("record.value(): {} ", record.value()))
// .doOnNext(record -> updateOrderStatus(record.value()))
.
doOnNext
(
record
->
System
.
out
.
println
(
record
))
.
doOnNext
(
record
->
log
.
info
(
"record.value(): {} "
,
record
.
value
()))
// .doOnNext(record -> {
// if (record.key() != null) {
// updateOrderStatus(record.value());
// } else {
// log.error("{} is :::::: ", record.value());
// }
// })
.
doOnNext
(
record
->
updateOrderStatus
(
record
.
value
()))
.
doOnError
(
throwable
->
System
.
out
.
println
(
throwable
.
getMessage
()))
.
subscribe
();
}
...
...
@@ -53,20 +60,25 @@ public class Receiver {
private
void
updateOrderStatus
(
String
orderStr
)
{
try
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
Order
order
=
objectMapper
.
readValue
(
orderStr
,
Order
.
class
);
log
.
info
(
"ORDER objectMapper {}"
,
order
);
String
orderId
=
order
.
getId
();
System
.
out
.
println
(
"About to try sending an email."
);
emailService
.
emailCreator
(
order
);
Mono
<
Order
>
updated
=
orderService
.
updateOrderByOrderId
(
orderId
,
order
);
updated
.
block
();
// if (orderStr.isEmpty()) {
// log.info("ORDERSTR IS EMPTYYYYYY");
// return;
// } else {
ObjectMapper
objectMapper
=
new
ObjectMapper
();
Order
order
=
objectMapper
.
readValue
(
orderStr
,
Order
.
class
);
log
.
info
(
"ORDER objectMapper {}"
,
order
);
String
orderId
=
order
.
getId
();
System
.
out
.
println
(
"About to try sending an email."
);
emailService
.
emailCreator
(
order
);
Mono
<
Order
>
updated
=
orderService
.
updateOrderByOrderId
(
orderId
,
order
);
updated
.
subscribe
();
// }
}
catch
(
Exception
e
)
{
log
.
error
(
"Caught error on UpdateOrderStatus method"
,
e
);
e
.
printStackTrace
();
//
e.printStackTrace();
}
}
...
...
src/main/java/com/afp/ordermanagement/reactivekafkaservice/Sender.java
View file @
56b34f30
...
...
@@ -25,6 +25,8 @@ public class Sender {
private
static
final
String
ORDER_TOPIC
=
"orders"
;
private
static
final
String
WAREHOUSE_TOPIC
=
"warehouseManagement"
;
public
void
sendOrderToWarehouse
(
Order
orderObject
)
{
log
.
info
(
String
.
format
(
"##### -> Sender sending message: %s "
,
orderObject
));
...
...
@@ -42,4 +44,17 @@ public class Sender {
}
public
void
sendUpdatedOrderToWarehouseTopic
(
Order
order
)
{
ProducerRecord
<
String
,
Order
>
record
=
new
ProducerRecord
<>(
WAREHOUSE_TOPIC
,
order
);
System
.
out
.
println
(
"In sendUpdatedOrderToWarehouseTopic"
);
Flux
<
SenderResult
<
Order
>>
updated
=
kafkaEventProducer
.
send
(
Mono
.
just
(
SenderRecord
.
create
(
record
,
order
)))
.
doOnError
(
throwable
->
System
.
out
.
println
(
throwable
))
.
doOnNext
(
uuidSenderResult
->
{
if
(
null
!=
uuidSenderResult
.
exception
())
{
System
.
out
.
println
(
"send order update"
);
}
});
updated
.
doOnError
(
throwable
->
log
.
error
(
"error on sendUpdatedOrderToWarehouse method"
)).
subscribe
();
}
}
src/main/resources/application.properties
View file @
56b34f30
...
...
@@ -4,6 +4,7 @@ kafka.producer.acks=all
kafka.consumer.bootstrap-servers
=
localhost:9092
kafka.consumer.group-id
=
group_id
kafka.topic.input
=
orders
kafka.topic.output
=
warehouseManagement
# Config for MailTrap SMTP Mail testing service
spring.mail.protocol
=
smtp
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment