Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
orders-monitoring-dashboard
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
0
Merge Requests
0
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
Ramakanth Dhane
orders-monitoring-dashboard
Commits
fb36840a
Commit
fb36840a
authored
Apr 29, 2020
by
Ramakanth Dhane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OMD-04 - Generate random orders-Bug Fixes
parent
0b7036cb
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
21 deletions
+43
-21
OrderGenerator.java
...t-service/src/main/java/com/nisum/omd/OrderGenerator.java
+26
-18
RandomDataGenerator.java
.../main/java/com/nisum/omd/service/RandomDataGenerator.java
+3
-0
RandomDataGeneratorImpl.java
...n/java/com/nisum/omd/service/RandomDataGeneratorImpl.java
+10
-2
application.properties
...heckout-service/src/main/resources/application.properties
+4
-1
No files found.
omd-checkout-service/src/main/java/com/nisum/omd/OrderGenerator.java
View file @
fb36840a
...
@@ -2,33 +2,38 @@ package com.nisum.omd;
...
@@ -2,33 +2,38 @@ package com.nisum.omd;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.ThreadLocalRandom
;
import
javax.annotation.PostConstruct
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.nisum.omd.domain.Order
;
import
com.nisum.omd.domain.Order
;
import
com.nisum.omd.service.OmdProducerService
;
import
com.nisum.omd.service.OmdProducerService
;
import
com.nisum.omd.service.RandomDataGenerator
Impl
;
import
com.nisum.omd.service.RandomDataGenerator
;
@Component
@Component
@RestController
@RestController
public
class
OrderGenerator
implements
CommandLineRunner
{
public
class
OrderGenerator
{
@Autowired
@Autowired
private
RandomDataGenerator
Impl
rdg
;
private
RandomDataGenerator
randomDataGenerator
;
@Autowired
@Autowired
private
Order
order
;
private
Order
order
;
@Autowired
@Autowired
private
OmdProducerService
omdProducerService
;
private
OmdProducerService
omdProducerService
;
private
Boolean
orderGenerateFlag
=
false
;
private
Boolean
orderGenerateFlag
=
false
;
private
List
<
Double
>
intervalList
;
public
Boolean
getOrderGenerateFlag
()
{
public
Boolean
getOrderGenerateFlag
()
{
return
orderGenerateFlag
;
return
orderGenerateFlag
;
...
@@ -38,48 +43,51 @@ public class OrderGenerator implements CommandLineRunner{
...
@@ -38,48 +43,51 @@ public class OrderGenerator implements CommandLineRunner{
this
.
orderGenerateFlag
=
orderGenerateFlag
;
this
.
orderGenerateFlag
=
orderGenerateFlag
;
}
}
public
void
run
(
String
...
args
)
throws
Exception
{
public
void
execute
()
throws
Exception
{
intervalList
=
randomDataGenerator
.
generateIntervals
();
while
(
true
)
{
while
(
true
)
{
if
(
orderGenerateFlag
)
{
if
(
orderGenerateFlag
)
{
order
=
getObjectData
(
order
);
order
=
getObjectData
(
order
);
omdProducerService
.
sendMessage
(
order
);
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
registerModule
(
new
JavaTimeModule
());
objectMapper
.
registerModule
(
new
JavaTimeModule
());
objectMapper
.
disable
(
SerializationFeature
.
WRITE_DATES_AS_TIMESTAMPS
);
objectMapper
.
disable
(
SerializationFeature
.
WRITE_DATES_AS_TIMESTAMPS
);
String
jsonOrderStr
=
objectMapper
.
writeValueAsString
(
order
);
String
jsonOrderStr
=
objectMapper
.
writeValueAsString
(
order
);
System
.
out
.
println
(
jsonOrderStr
);
System
.
out
.
println
(
jsonOrderStr
);
Thread
.
sleep
(
2000
);
Thread
.
sleep
(
(
long
)(
getRandomInterval
(
intervalList
)
*
1000
)
);
}
}
}
}
}
}
@GetMapping
(
path
=
"/orderStartStop"
)
@GetMapping
(
path
=
"/orderStartStop/{gneratorFlag}"
)
public
String
orderStartStop
()
throws
Exception
{
public
String
orderStartStop
(
@PathVariable
(
"gneratorFlag"
)
boolean
gneratorFlag
)
throws
Exception
{
orderGenerateFlag
=
gneratorFlag
;
if
(
orderGenerateFlag
)
{
if
(
orderGenerateFlag
)
{
CompletableFuture
.
runAsync
(()
->
{
CompletableFuture
.
runAsync
(()
->
{
try
{
try
{
run
();
execute
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
});
});
orderGenerateFlag
=
false
;
}
else
{
orderGenerateFlag
=
true
;
}
}
return
"Order Generate : "
+
orderGenerateFlag
.
toString
();
return
"Order Generate : "
+
orderGenerateFlag
.
toString
();
}
}
private
Order
getObjectData
(
Order
orders
)
{
private
Order
getObjectData
(
Order
orders
)
{
LocalDateTime
currentTime
=
LocalDateTime
.
now
();
LocalDateTime
currentTime
=
LocalDateTime
.
now
();
order
.
setOrderNum
(
r
dg
.
generateOrderNumber
());
order
.
setOrderNum
(
r
andomDataGenerator
.
generateOrderNumber
());
order
.
setCustomerId
(
r
dg
.
generateCustomerId
());
order
.
setCustomerId
(
r
andomDataGenerator
.
generateCustomerId
());
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ISO_DATE_TIME
;
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ISO_DATE_TIME
;
String
formattedDateTime
=
currentTime
.
format
(
formatter
);
String
formattedDateTime
=
currentTime
.
format
(
formatter
);
order
.
setOrderDate
(
formattedDateTime
);
order
.
setOrderDate
(
formattedDateTime
);
order
.
setLineItem
(
r
dg
.
genetateLineItem
(
order
.
getLineItem
()));
order
.
setLineItem
(
r
andomDataGenerator
.
genetateLineItem
(
order
.
getLineItem
()));
return
order
;
return
order
;
}
}
private
static
Double
getRandomInterval
(
List
<
Double
>
list
)
{
int
index
=
ThreadLocalRandom
.
current
().
nextInt
(
list
.
size
());
return
list
.
get
(
index
);
}
}
}
omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGenerator.java
View file @
fb36840a
package
com
.
nisum
.
omd
.
service
;
package
com
.
nisum
.
omd
.
service
;
import
java.util.List
;
import
com.nisum.omd.domain.LineItem
;
import
com.nisum.omd.domain.LineItem
;
public
interface
RandomDataGenerator
{
public
interface
RandomDataGenerator
{
...
@@ -7,5 +9,6 @@ public interface RandomDataGenerator {
...
@@ -7,5 +9,6 @@ public interface RandomDataGenerator {
public
String
generateOrderNumber
();
public
String
generateOrderNumber
();
public
String
generateCustomerId
();
public
String
generateCustomerId
();
public
LineItem
genetateLineItem
(
LineItem
li
);
public
LineItem
genetateLineItem
(
LineItem
li
);
public
List
<
Double
>
generateIntervals
();
}
}
omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGeneratorImpl.java
View file @
fb36840a
...
@@ -6,7 +6,6 @@ import java.util.Random;
...
@@ -6,7 +6,6 @@ import java.util.Random;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
com.github.javafaker.Faker
;
import
com.github.javafaker.Faker
;
import
com.nisum.omd.domain.LineItem
;
import
com.nisum.omd.domain.LineItem
;
...
@@ -14,7 +13,6 @@ import com.nisum.omd.domain.Order;
...
@@ -14,7 +13,6 @@ import com.nisum.omd.domain.Order;
@Component
@Component
@RequestMapping
(
"app"
)
public
class
RandomDataGeneratorImpl
implements
RandomDataGenerator
{
public
class
RandomDataGeneratorImpl
implements
RandomDataGenerator
{
@Autowired
@Autowired
...
@@ -47,4 +45,14 @@ public class RandomDataGeneratorImpl implements RandomDataGenerator {
...
@@ -47,4 +45,14 @@ public class RandomDataGeneratorImpl implements RandomDataGenerator {
return
lineItem
;
return
lineItem
;
}
}
@Override
public
List
<
Double
>
generateIntervals
()
{
List
<
Double
>
timeIntervals
=
new
ArrayList
<
Double
>();
timeIntervals
.
add
(
0.10
);
timeIntervals
.
add
(
0.20
);
timeIntervals
.
add
(
0.30
);
timeIntervals
.
add
(
0.40
);
return
timeIntervals
;
}
}
}
omd-checkout-service/src/main/resources/application.properties
View file @
fb36840a
...
@@ -72,3 +72,6 @@ app.paymentMethod.paymentDetail.RequestAmount=1000.00
...
@@ -72,3 +72,6 @@ app.paymentMethod.paymentDetail.RequestAmount=1000.00
#Kafka Properties
#Kafka Properties
bootstrap-server
=
localhost:9092
bootstrap-server
=
localhost:9092
topic-name
=
TOPIC_OMD_ORDER_DATA
topic-name
=
TOPIC_OMD_ORDER_DATA
# Time intervals
app.listOfintervals
=
0.05,0.10
\ No newline at end of file
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