diff --git a/src/main/java/com/palnet/Application.java b/src/main/java/com/palnet/Application.java index 15c9de7..7d0da43 100644 --- a/src/main/java/com/palnet/Application.java +++ b/src/main/java/com/palnet/Application.java @@ -1,13 +1,19 @@ package com.palnet; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; @SpringBootApplication public class Application { - public static void main(String[] args) { SpringApplication.run(Application.class, args); } + @Bean + public ObjectMapper objectMapper() { + return new ObjectMapper(); + } + } diff --git a/src/main/java/com/palnet/comn/collection/GPCollection.java b/src/main/java/com/palnet/comn/collection/GPCollection.java index 195abbe..31c5c92 100644 --- a/src/main/java/com/palnet/comn/collection/GPCollection.java +++ b/src/main/java/com/palnet/comn/collection/GPCollection.java @@ -3,9 +3,9 @@ package com.palnet.comn.collection; import com.palnet.comn.utils.ContextUtils; import com.palnet.comn.utils.DateUtils; import com.palnet.process.message.producer.MessageProducer; -import com.palnet.process.model.GPDatabaseModel; -import com.palnet.process.model.GPHistoryModel; -import com.palnet.process.model.GPModel; +import com.palnet.comn.model.GPDatabaseModel; +import com.palnet.comn.model.GPHistoryModel; +import com.palnet.comn.model.GPModel; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,14 +57,15 @@ public class GPCollection { data.setPostionHistory(historyList); /* Message Queue Server 전달 */ - convertModel(model); + convertModel(data); } } public void convertModel(GPModel model) { GPDatabaseModel databaseModel = new GPDatabaseModel(); - BeanUtils.copyProperties(model, databaseModel); - messageProducer.sendSocketData(databaseModel); + + messageProducer.sendToAppServerMessage(databaseModel); +// messageProducer.sendToClientMessage(model); } } diff --git a/src/main/java/com/palnet/process/model/GPDatabaseModel.java b/src/main/java/com/palnet/comn/model/GPDatabaseModel.java similarity index 97% rename from src/main/java/com/palnet/process/model/GPDatabaseModel.java rename to src/main/java/com/palnet/comn/model/GPDatabaseModel.java index 00db3bf..0d1a6f9 100644 --- a/src/main/java/com/palnet/process/model/GPDatabaseModel.java +++ b/src/main/java/com/palnet/comn/model/GPDatabaseModel.java @@ -1,4 +1,4 @@ -package com.palnet.process.model; +package com.palnet.comn.model; import lombok.Data; diff --git a/src/main/java/com/palnet/process/model/GPHistoryModel.java b/src/main/java/com/palnet/comn/model/GPHistoryModel.java similarity index 81% rename from src/main/java/com/palnet/process/model/GPHistoryModel.java rename to src/main/java/com/palnet/comn/model/GPHistoryModel.java index 4557984..7262a45 100644 --- a/src/main/java/com/palnet/process/model/GPHistoryModel.java +++ b/src/main/java/com/palnet/comn/model/GPHistoryModel.java @@ -1,4 +1,4 @@ -package com.palnet.process.model; +package com.palnet.comn.model; import lombok.Data; diff --git a/src/main/java/com/palnet/process/model/GPModel.java b/src/main/java/com/palnet/comn/model/GPModel.java similarity index 97% rename from src/main/java/com/palnet/process/model/GPModel.java rename to src/main/java/com/palnet/comn/model/GPModel.java index 64674c4..77f5cc8 100644 --- a/src/main/java/com/palnet/process/model/GPModel.java +++ b/src/main/java/com/palnet/comn/model/GPModel.java @@ -1,4 +1,4 @@ -package com.palnet.process.model; +package com.palnet.comn.model; import lombok.Data; diff --git a/src/main/java/com/palnet/process/message/config/MessageConfig.java b/src/main/java/com/palnet/process/message/config/MessageConfig.java index ea310af..2c0dd72 100644 --- a/src/main/java/com/palnet/process/message/config/MessageConfig.java +++ b/src/main/java/com/palnet/process/message/config/MessageConfig.java @@ -1,12 +1,10 @@ package com.palnet.process.message.config; import lombok.extern.slf4j.Slf4j; -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.core.*; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.context.annotation.Bean; @@ -23,10 +21,10 @@ public class MessageConfig { this.env = env; } - @Bean - public CachingConnectionFactory cachingConnectionFactory() { - return new CachingConnectionFactory(); - } +// @Bean +// public CachingConnectionFactory cachingConnectionFactory() { +// return new CachingConnectionFactory(); +// } @Bean public Jackson2JsonMessageConverter converter() { @@ -34,22 +32,41 @@ public class MessageConfig { } @Bean - public TopicExchange droneExchange() { - return new TopicExchange(env.getProperty("message.dron.exchange-name")); + public DirectExchange appDroneExchange() { + return new DirectExchange(env.getProperty("message.app.exchange-name")); + } + + @Bean + public DirectExchange websocketDroneExchange() { + return new DirectExchange(env.getProperty("message.websocket.exchange-name")); + } + + @Bean + public Queue appDroneQueue() { + return new Queue(env.getProperty("message.app.queue-name"), false); + } + + @Bean + public Queue websocketDroneQueue() { + return new Queue(env.getProperty("message.websocket.queue-name"), false); } @Bean - public Queue droneQueue() { - return new Queue(env.getProperty("message.dron.queue-name")); + public Binding appDroneBinding(Queue appDroneQueue, DirectExchange appDroneExchange) { + return BindingBuilder.bind(appDroneQueue) + .to(appDroneExchange) + .with(env.getProperty("message.app.routing-key")); } @Bean - public Binding droneBinding(Queue queue, TopicExchange exchange) { - return BindingBuilder.bind(queue).to(exchange).with(env.getProperty("message.dron.routing-key")); + public Binding websocketDroneBinding(Queue websocketDroneQueue, DirectExchange websocketDroneExchange) { + return BindingBuilder.bind(websocketDroneQueue) + .to(websocketDroneExchange) + .with(env.getProperty("message.websocket.routing-key")); } @Bean - public RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory, Jackson2JsonMessageConverter converter) { + public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, Jackson2JsonMessageConverter converter) { RabbitTemplate rabbitTemplate = new RabbitTemplate(); rabbitTemplate.setConnectionFactory(connectionFactory); diff --git a/src/main/java/com/palnet/process/message/producer/MessageProducer.java b/src/main/java/com/palnet/process/message/producer/MessageProducer.java index 09c2d1b..de8aec6 100644 --- a/src/main/java/com/palnet/process/message/producer/MessageProducer.java +++ b/src/main/java/com/palnet/process/message/producer/MessageProducer.java @@ -1,8 +1,10 @@ package com.palnet.process.message.producer; -import com.palnet.process.model.GPDatabaseModel; -import com.palnet.process.model.GPModel; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.palnet.comn.model.GPDatabaseModel; +import com.palnet.comn.model.GPModel; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.core.env.Environment; @@ -16,16 +18,26 @@ public class MessageProducer { private final RabbitTemplate rabbitTemplate; private final Environment env; + private final ObjectMapper objectMapper; - public MessageProducer(RabbitTemplate rabbitTemplate, Environment env) { + public MessageProducer(RabbitTemplate rabbitTemplate, Environment env, ObjectMapper objectMapper) { this.rabbitTemplate = rabbitTemplate; this.env = env; + this.objectMapper = objectMapper; } - public void sendSocketData(GPDatabaseModel model) { + public void sendToAppServerMessage(GPDatabaseModel model){ rabbitTemplate.convertAndSend( - Objects.requireNonNull(env.getProperty("message.drone.exchange-name")), - Objects.requireNonNull(env.getProperty("message.drone.routing-key")), - model); + Objects.requireNonNull(env.getProperty("message.app.queue-name")), + model + ); + } + + public void sendToClientMessage(GPModel model) { + rabbitTemplate.convertAndSend( + Objects.requireNonNull(env.getProperty("message.websocket.exchange-name")), + Objects.requireNonNull(env.getProperty("message.websocket.routing-key")), + model + ); } } diff --git a/src/main/java/com/palnet/server/command/SocketCommand.java b/src/main/java/com/palnet/server/command/SocketCommand.java index 61f6a97..f1435cd 100644 --- a/src/main/java/com/palnet/server/command/SocketCommand.java +++ b/src/main/java/com/palnet/server/command/SocketCommand.java @@ -1,7 +1,7 @@ package com.palnet.server.command; import com.palnet.comn.collection.GPCollection; -import com.palnet.process.model.GPModel; +import com.palnet.comn.model.GPModel; import com.palnet.server.codec.SocketPayload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -127,10 +127,7 @@ public class SocketCommand { logger.info("lat , lon No data "); } } - -// collection.putData(dataList); -// logger.debug("SIZE :: " +collection.getData().size() ); - + collection.putData(dataList); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d06d428..86dbf4e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -5,7 +5,6 @@ spring: username: guest password: guest - netty: task: controlinfoTime: 2000 @@ -19,9 +18,11 @@ server: port: 8182 message: - drone: - queue-name: drone.queue - exchange-name: drone.exchange - routing-key: drone.routing.# - - + app: + queue-name: app.drone.queue + exchange-name: app.drone.exchange + routing-key: app.drone.routing.# + websocket: + queue-name: websocket.drone.queue + exchange-name: websocket.drone.exchange + routing-key: websocket.drone.routing.# \ No newline at end of file