From 7595dde3be07fa35e5cbbabacc465b575e471c0d Mon Sep 17 00:00:00 2001 From: guxiong Date: Tue, 13 Aug 2019 09:32:00 -0700 Subject: [PATCH] before adding auth & api gateway services --- .gitignore | 3 +- .idea/codeStyles/codeStyleConfig.xml | 5 ++ .../DataConsumerApplication.java | 6 +- data-dashboard/pom.xml | 24 +++--- .../DataDashboardApplication.java | 1 + .../resources/static/WebSocketController.js | 83 ++++++++++--------- .../src/main/resources/static/index.html | 44 +++++----- .../controller/DataIngestController.java | 14 +--- .../model/HealthMonitorRawData.java | 1 + .../DataSimulatorApplication.java | 2 +- docker-rabbitmq/docker-compose.yml | 16 ++-- pom.xml | 27 ++++++ 12 files changed, 125 insertions(+), 101 deletions(-) create mode 100644 .idea/codeStyles/codeStyleConfig.xml diff --git a/.gitignore b/.gitignore index 03d3273..3d4d42a 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,5 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -docker-mongodb/data/ \ No newline at end of file +docker-mongodb/data/* +*/target \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/data-consumer/src/main/java/com/artgeektech/iotmicroservices/DataConsumerApplication.java b/data-consumer/src/main/java/com/artgeektech/iotmicroservices/DataConsumerApplication.java index f20740f..48f1c0d 100644 --- a/data-consumer/src/main/java/com/artgeektech/iotmicroservices/DataConsumerApplication.java +++ b/data-consumer/src/main/java/com/artgeektech/iotmicroservices/DataConsumerApplication.java @@ -28,9 +28,9 @@ public Queue queue() { @Bean public Binding binding(Queue queue, Exchange dataExchange) { return BindingBuilder - .bind(queue) - .to(dataExchange) - .with(Constants.ROUTING_KEY_HISTORY).noargs(); + .bind(queue) + .to(dataExchange) + .with(Constants.ROUTING_KEY_HISTORY).noargs(); } public static void main(String[] args) { diff --git a/data-dashboard/pom.xml b/data-dashboard/pom.xml index 69f2abe..702670e 100644 --- a/data-dashboard/pom.xml +++ b/data-dashboard/pom.xml @@ -14,9 +14,9 @@ - - - + + + org.springframework.boot @@ -27,19 +27,19 @@ spring-rabbit - - - + + + - - - + + + - - - + + + diff --git a/data-dashboard/src/main/java/com/artgeektech/iotmicroservices/DataDashboardApplication.java b/data-dashboard/src/main/java/com/artgeektech/iotmicroservices/DataDashboardApplication.java index 49c4e45..0db2d6e 100644 --- a/data-dashboard/src/main/java/com/artgeektech/iotmicroservices/DataDashboardApplication.java +++ b/data-dashboard/src/main/java/com/artgeektech/iotmicroservices/DataDashboardApplication.java @@ -33,6 +33,7 @@ public Binding binding(Queue queue, Exchange dataExchange) { .to(dataExchange) .with(Constants.ROUTING_KEY_REALTIME).noargs(); } + public static void main(String[] args) { SpringApplication.run(DataDashboardApplication.class, args); } diff --git a/data-dashboard/src/main/resources/static/WebSocketController.js b/data-dashboard/src/main/resources/static/WebSocketController.js index 63946cd..6363007 100644 --- a/data-dashboard/src/main/resources/static/WebSocketController.js +++ b/data-dashboard/src/main/resources/static/WebSocketController.js @@ -1,48 +1,49 @@ class WebSocketController { - - constructor() { - this._onConnected = this._onConnected.bind(this); - } - - _onConnected(frame) { + + constructor() { + this._onConnected = this._onConnected.bind(this); + } + + _onConnected(frame) { this.setConnected(true); console.log('Connected: ' + frame); this.stompClient.subscribe('/topic/realtime', this.showMessage); - } - - setConnected(connected) { - document.getElementById('connect').disabled = connected; - document.getElementById('disconnect').disabled = !connected; - document.getElementById('realtime').style.visibility = connected ? 'visible' : 'hidden'; - document.getElementById('response').innerHTML = ''; - } - - connect() { - var socket = new SockJS('/websocket-app'); - this.stompClient = Stomp.over(socket); - this.stompClient.connect({}, this._onConnected); - } - - disconnect() { - if(this.stompClient != null) { - this.stompClient.disconnect(); - } - this.setConnected(false); - console.log("Disconnected"); - } - - sendMessage() { - var message = document.getElementById('text').value; - this.stompClient.send("/app/message", {}, message); - } - - showMessage(message) { - var response = document.getElementById('response'); - var p = document.createElement('p'); - p.style.wordWrap = 'break-word'; - p.appendChild(document.createTextNode(message.body)); - response.appendChild(p); - } + } + + setConnected(connected) { + document.getElementById('connect').disabled = connected; + document.getElementById('disconnect').disabled = !connected; + document.getElementById('realtime').style.visibility = connected ? 'visible' : 'hidden'; + document.getElementById('response').innerHTML = ''; + } + + connect() { + var socket = new SockJS('/websocket-app'); + this.stompClient = Stomp.over(socket); + this.stompClient.connect({}, this._onConnected); + } + + disconnect() { + if (this.stompClient != null) { + this.stompClient.disconnect(); + } + this.setConnected(false); + console.log("Disconnected"); + } + + sendMessage() { + var message = document.getElementById('text').value; + this.stompClient.send("/app/message", {}, message); + } + + showMessage(message) { + var response = document.getElementById('response'); + var p = document.createElement('p'); + p.style.wordWrap = 'break-word'; + p.appendChild(document.createTextNode(message.body)); + response.appendChild(p); + } } + var webSocket = new WebSocketController(); diff --git a/data-dashboard/src/main/resources/static/index.html b/data-dashboard/src/main/resources/static/index.html index ed44539..ae06ca5 100644 --- a/data-dashboard/src/main/resources/static/index.html +++ b/data-dashboard/src/main/resources/static/index.html @@ -1,24 +1,24 @@ - - Spring WebSocket Messaging - - - - - -
-
- - -
-
-
- - -

-
-
- + + Spring WebSocket Messaging + + + + + +
+
+ + +
+
+
+ + +

+
+
+ diff --git a/data-ingest/src/main/java/com/artgeektech/iotmicroservices/controller/DataIngestController.java b/data-ingest/src/main/java/com/artgeektech/iotmicroservices/controller/DataIngestController.java index 439f20a..35fa630 100644 --- a/data-ingest/src/main/java/com/artgeektech/iotmicroservices/controller/DataIngestController.java +++ b/data-ingest/src/main/java/com/artgeektech/iotmicroservices/controller/DataIngestController.java @@ -16,18 +16,11 @@ import java.util.Date; -@RestController +@RestController // == @Controller + @ResponseBody public class DataIngestController { private static final Logger logger = LoggerFactory.getLogger(DataIngestController.class); -// @Autowired -// private SimpMessagingTemplate messagingTemplate; - - -// @Autowired -// private RestTemplate restTemplate; - @Autowired private RabbitTemplate rabbitTemplate; @@ -35,9 +28,6 @@ public class DataIngestController { private Exchange exchange; - - - @PostMapping("/healthdata/ingest") // validate payload from request body public HealthMonitorData ingest(@Valid @RequestBody HealthMonitorRawData rawData) { // preprocess @@ -53,13 +43,11 @@ public HealthMonitorData ingest(@Valid @RequestBody HealthMonitorRawData rawData } - private HealthMonitorData preprocess(HealthMonitorRawData rawData) { HealthMonitorData healthData = new HealthMonitorData(); // add more info from system healthData.setTimestamp(new Date()); -// airData.setSensorId()... // standardize data format healthData.setBloodPressure(Math.round(rawData.getBloodPressure() * 100.0) / 100.0); diff --git a/data-ingest/src/main/java/com/artgeektech/iotmicroservices/model/HealthMonitorRawData.java b/data-ingest/src/main/java/com/artgeektech/iotmicroservices/model/HealthMonitorRawData.java index 18f43cb..d281f4e 100644 --- a/data-ingest/src/main/java/com/artgeektech/iotmicroservices/model/HealthMonitorRawData.java +++ b/data-ingest/src/main/java/com/artgeektech/iotmicroservices/model/HealthMonitorRawData.java @@ -13,6 +13,7 @@ @AllArgsConstructor @NoArgsConstructor public class HealthMonitorRawData implements Serializable { + @NotNull @Min(1) @Max(100) diff --git a/data-simulator/src/main/java/com/artgeektech/iotmicroservices/DataSimulatorApplication.java b/data-simulator/src/main/java/com/artgeektech/iotmicroservices/DataSimulatorApplication.java index 5c66722..9042165 100644 --- a/data-simulator/src/main/java/com/artgeektech/iotmicroservices/DataSimulatorApplication.java +++ b/data-simulator/src/main/java/com/artgeektech/iotmicroservices/DataSimulatorApplication.java @@ -34,7 +34,7 @@ public static void main(String[] args) { @Override public void run() { - HealthMonitorRawData payload = new HealthMonitorRawData(genRandom(), genRandom(), (int)genRandom(), (int)genRandom()); + HealthMonitorRawData payload = new HealthMonitorRawData(genRandom(), genRandom(), (int) genRandom(), (int) genRandom()); HttpEntity request = new HttpEntity<>(payload); diff --git a/docker-rabbitmq/docker-compose.yml b/docker-rabbitmq/docker-compose.yml index 3358fd4..0511292 100644 --- a/docker-rabbitmq/docker-compose.yml +++ b/docker-rabbitmq/docker-compose.yml @@ -1,10 +1,10 @@ version: '2' services: - sonar: - container_name: aiwin-rabbit - image: aiwin/rabbitmq-stomp:latest - ports: - - 61613:61613 - - 15674:15674 - - 15672:15672 - - 5672:5672 \ No newline at end of file + sonar: + container_name: aiwin-rabbit + image: aiwin/rabbitmq-stomp:latest + ports: + - 61613:61613 + - 15674:15674 + - 15672:15672 + - 5672:5672 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9f95e0f..6de213d 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,33 @@ pom + + + central + Central Repository + https://repo.maven.apache.org/maven2 + default + + false + + + + + + + central + Central Repository + https://repo.maven.apache.org/maven2 + default + + false + + + never + + + + org.springframework.boot spring-boot-starter-parent