Browse Source

rabbit mq integrated

master
Gowrisankar J g 4 years ago
parent
commit
e13fd58cbf
11 changed files with 180 additions and 40 deletions
  1. 11
      UB_OrderServiceProxy/pom.xml
  2. 48
      UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/config/MessagingConfig.java
  3. 14
      UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/controller/OrderController.java
  4. 59
      UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/model/OrderStatus.java
  5. 11
      UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/model/Orders.java
  6. 2
      UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/repository/OrderRepository.java
  7. 9
      UB_OrderServiceProxy/src/main/resources/application.properties
  8. 2
      UB_UserServiceProxy/src/main/java/com/example/urbanbazaar/UbUserServiceProxyApplication.java
  9. 41
      UB_UserServiceProxy/src/main/java/com/example/urbanbazaar/controller/UserController.java
  10. 22
      grocery_db_tables.sql
  11. 1
      springboot-rabbitmq-example

11
UB_OrderServiceProxy/pom.xml

@ -17,6 +17,10 @@
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
@ -25,7 +29,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>

48
UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/config/MessagingConfig.java

@ -0,0 +1,48 @@
package com.example.urbanbazaar.config;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MessagingConfig {
public static final String QUEUE = "team_berlin_gs";
public static final String EXCHANGE = "team_berlin_exchange";
public static final String ROUTING_KEY = "team_berlin_routingKey";
@Bean
public Queue queue() {
return new Queue(QUEUE);
}
@Bean
public TopicExchange exchange() {
return new TopicExchange(EXCHANGE);
}
@Bean
public Binding binding(Queue queue, TopicExchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);
}
@Bean
public MessageConverter converter() {
return new Jackson2JsonMessageConverter();
}
@Bean
public AmqpTemplate template(ConnectionFactory connectionFactory) {
final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setMessageConverter(converter());
return rabbitTemplate;
}
}

14
UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/controller/OrderController.java

@ -3,6 +3,7 @@ package com.example.urbanbazaar.controller;
import java.util.List;
import java.util.NoSuchElementException;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@ -12,19 +13,26 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.urbanbazaar.config.MessagingConfig;
import com.example.urbanbazaar.model.OrderStatus;
import com.example.urbanbazaar.model.Orders;
import com.example.urbanbazaar.repository.OrderRepository;
@RestController
public class OrderController {
@Autowired
private OrderRepository repo;
@Autowired
private RabbitTemplate template;
@PostMapping("/addOrder")
public void addOrders( @RequestBody Orders order) {
public String addOrders(@RequestBody Orders order) {
repo.save(order);
OrderStatus orderStatus = new OrderStatus(order, "PROCESS", "order placed successfully !! ("+order.getUserid()+")");
template.convertAndSend(MessagingConfig.EXCHANGE, MessagingConfig.ROUTING_KEY, orderStatus);
return "Success !!";
}
@GetMapping("/findOrder/{id}")
@ -42,7 +50,7 @@ public class OrderController {
public ResponseEntity<List<Orders>> findOrderByUser(@PathVariable Integer id) {
try {
List<Orders> orders = repo.findByorderuserid(id);
List<Orders> orders = repo.findByuserid(id);
return new ResponseEntity<List<Orders>>(orders, HttpStatus.OK);
} catch (NoSuchElementException e) {
return new ResponseEntity<List<Orders>>(HttpStatus.NOT_FOUND);

59
UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/model/OrderStatus.java

@ -0,0 +1,59 @@
package com.example.urbanbazaar.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class OrderStatus {
private Orders order;
private String status;//progress,completed
private String message;
public Orders getOrder() {
return order;
}
public void setOrder(Orders order) {
this.order = order;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public OrderStatus() {
super();
// TODO Auto-generated constructor stub
}
public OrderStatus(Orders order, String status, String message) {
super();
this.order = order;
this.status = status;
this.message = message;
}
@Override
public String toString() {
return "OrderStatus [order=" + order + ", status=" + status + ", message=" + message + "]";
}
}

11
UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/model/Orders.java

@ -1,6 +1,8 @@
package com.example.urbanbazaar.model;
import java.sql.Date;
import java.time.LocalDate;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@ -16,9 +18,10 @@ public class Orders {
private int userid;
private float orderamount;
private float ordershippingcost;
private Date orderdate;
private String orderdate;
private boolean ordershipped;
private String ordertrackingnumber;
public int getOrderid() {
return orderid;
}
@ -43,10 +46,10 @@ public class Orders {
public void setOrdershippingcost(float ordershippingcost) {
this.ordershippingcost = ordershippingcost;
}
public Date getOrderdate() {
public String getOrderdate() {
return orderdate;
}
public void setOrderdate(Date orderdate) {
public void setOrderdate(String orderdate) {
this.orderdate = orderdate;
}
public boolean isOrdershipped() {
@ -64,7 +67,7 @@ public class Orders {
public Orders() {}
public Orders(int orderid, int userid, float orderamount, float ordershippingcost, Date orderdate,
public Orders(int orderid, int userid, float orderamount, float ordershippingcost, String orderdate,
boolean ordershipped, String ordertrackingnumber) {
super();
this.orderid = orderid;

2
UB_OrderServiceProxy/src/main/java/com/example/urbanbazaar/repository/OrderRepository.java

@ -13,5 +13,5 @@ public interface OrderRepository extends JpaRepository<Orders, Integer> {
@Query("SELECT o FROM Orders o WHERE o.ordertrackingnumber=:id")
public Orders findByTrackId(@Param("id") String id);
public List<Orders> findByorderuserid(int id);
public List<Orders> findByuserid(int id);
}

9
UB_OrderServiceProxy/src/main/resources/application.properties

@ -1,6 +1,6 @@
server.port=8009
server.port=8019
spring.datasource.url=jdbc:mysql://10.3.117.21:3306/grocery_db?createDatabaseIfNotExist=true
spring.datasource.url=jdbc:mysql://10.3.117.23:3306/grocery_db?createDatabaseIfNotExist=true
spring.datasource.username=testuser
spring.datasource.password=Password123
@ -9,3 +9,8 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jackson.serialization.fail-on-empty-beans=false
spring.rabbitmq.port=5672
spring.rabbitmq.host=labs4.koteshwar.com
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

2
UB_UserServiceProxy/src/main/java/com/example/urbanbazaar/UbUserServiceProxyApplication.java

@ -9,5 +9,5 @@ public class UbUserServiceProxyApplication {
public static void main(String[] args) {
SpringApplication.run(UbUserServiceProxyApplication.class, args);
}
}

41
UB_UserServiceProxy/src/main/java/com/example/urbanbazaar/controller/UserController.java

@ -29,31 +29,38 @@ public class UserController {
@Autowired
private UserRepository repo;
@PostMapping("/addUser")
public ResponseEntity<String> addUser(@RequestBody User user) {
String tempusername =user.getUserfirstname();
if(tempusername !=null && !"".equals(tempusername)) {
User usero=repo.findByuserfirstname(tempusername);
if (usero!=null) {
return new ResponseEntity<String>("user with "+tempusername+ " already exists", HttpStatus.BAD_REQUEST);
// throw new Exception();
public ResponseEntity<String> addUser(@RequestBody User user) {
String tempusername = user.getUserfirstname();
if (tempusername != null && !"".equals(tempusername)) {
User usero = repo.findByuserfirstname(tempusername);
if (usero != null) {
return new ResponseEntity<String>("user with " + tempusername + " already exists",
HttpStatus.BAD_REQUEST);
}
}
repo.save(user);
return new ResponseEntity<String>("Registration success !!", HttpStatus.OK);}
repo.save(user);
return new ResponseEntity<String>("Registration success !!", HttpStatus.OK);
}
@PostMapping("/addUsers")
public ResponseEntity<List<User>> addUsers(@RequestBody List<User> users) {
repo.saveAll(users);
return new ResponseEntity<List<User>>(users, HttpStatus.OK);
}
@GetMapping("/showAllUsers")
public List<User> showUsers() {
return repo.findAll();
}
@GetMapping("/findUserById/{userId}")
public User findUserById(@PathVariable int userId) {
return repo.findById(userId).get();
}
@GetMapping("/findUserByName/{name}")
public User findUserByName(@PathVariable String name) {
return repo.findByuserfirstname(name);
@ -62,16 +69,16 @@ public class UserController {
@PostMapping("/login")
public ResponseEntity<String> userLogin(@RequestBody UserLogin user) {
User currentUser = repo.findByuserfirstname(user.getUserfirstname());
if(currentUser == null)
if (currentUser == null)
return new ResponseEntity<String>("User doesn't exist. Please create a new account.", HttpStatus.NOT_FOUND);
if(!currentUser.getUserpassword().equals(user.getUserpassword()))
if (!currentUser.getUserpassword().equals(user.getUserpassword()))
return new ResponseEntity<String>("Password mismatch.", HttpStatus.BAD_REQUEST);
return new ResponseEntity<String>("Login success !!", HttpStatus.OK);
}
@PutMapping("/update/")
public void update(@RequestBody User user) {
User oldu=repo.findById(user.getUserid()).get();
User oldu = repo.findById(user.getUserid()).get();
oldu.setUserfirstname(user.getUserfirstname());
oldu.setUserlastname(user.getUserlastname());
oldu.setUseraddress(user.getUseraddress());

22
grocery_db_tables.sql

@ -5,16 +5,16 @@ use grocery_db;
-- Users Table Schema
CREATE TABLE `users` (
`UserID` int(11) NOT NULL AUTO_INCREMENT,
`UserFirstName` varchar(20) DEFAULT NULL,
`UserLastName` varchar(20) DEFAULT NULL,
`UserEmail` varchar(20) DEFAULT NULL,
`UserPassword` varchar(20) DEFAULT NULL,
`UserCity` varchar(30) DEFAULT NULL,
`UserState` varchar(20) DEFAULT NULL,
`UserZip` varchar(6) DEFAULT NULL,
`UserPhone` varchar(10) DEFAULT NULL,
`UserAddress` varchar(80) DEFAULT NULL,
`UserAddress2` varchar(80) DEFAULT NULL,
`UserFirstName` varchar(50) DEFAULT NULL,
`UserLastName` varchar(50) DEFAULT NULL,
`UserEmail` varchar(50) DEFAULT NULL,
`UserPassword` varchar(50) DEFAULT NULL,
`UserCity` varchar(50) DEFAULT NULL,
`UserState` varchar(50) DEFAULT NULL,
`UserZip` varchar(10) DEFAULT NULL,
`UserPhone` varchar(50) DEFAULT NULL,
`UserAddress` varchar(150) DEFAULT NULL,
`UserAddress2` varchar(100) DEFAULT NULL,
PRIMARY KEY (`UserID`)
);
@ -121,7 +121,7 @@ CREATE TABLE IF NOT EXISTS `orders` (
`UserID` int(11) NOT NULL,
`OrderAmount` float NOT NULL,
`OrderShippingCost` float NOT NULL,
`OrderDate` date not null,
`OrderDate` varchar(80) not null,
`OrderShipped` bool not null default false,
`OrderTrackingNumber` varchar(80) DEFAULT NULL,
PRIMARY KEY (`OrderID`)

1
springboot-rabbitmq-example

@ -0,0 +1 @@
Subproject commit 10a0271fcba7f90b09523ad74703297c45b2b620
Loading…
Cancel
Save