Showing
73 changed files
with
287 additions
and
180 deletions
... | ... | @@ -69,8 +69,8 @@ |
69 | 69 | <!--<artifactId>coap</artifactId>--> |
70 | 70 | <!--</dependency>--> |
71 | 71 | <dependency> |
72 | - <groupId>org.thingsboard.transport</groupId> | |
73 | - <artifactId>mqtt-common</artifactId> | |
72 | + <groupId>org.thingsboard.common.transport</groupId> | |
73 | + <artifactId>mqtt</artifactId> | |
74 | 74 | </dependency> |
75 | 75 | <dependency> |
76 | 76 | <groupId>org.thingsboard</groupId> | ... | ... |
... | ... | @@ -64,7 +64,6 @@ import org.thingsboard.server.service.encoding.DataDecodingEncodingService; |
64 | 64 | import org.thingsboard.server.service.executors.DbCallbackExecutorService; |
65 | 65 | import org.thingsboard.server.service.executors.ExternalCallExecutorService; |
66 | 66 | import org.thingsboard.server.service.mail.MailExecutorService; |
67 | -import org.thingsboard.server.service.queue.MsgQueueService; | |
68 | 67 | import org.thingsboard.server.service.rpc.DeviceRpcService; |
69 | 68 | import org.thingsboard.server.service.script.JsExecutorService; |
70 | 69 | import org.thingsboard.server.service.script.JsInvokeService; | ... | ... |
... | ... | @@ -417,7 +417,7 @@ js: |
417 | 417 | max_errors: "${REMOTE_JS_SANDBOX_MAX_ERRORS:3}" |
418 | 418 | |
419 | 419 | transport: |
420 | - type: "${TRANSPORT_TYPE:remote}" # local or remote | |
420 | + type: "${TRANSPORT_TYPE:local}" # local or remote | |
421 | 421 | remote: |
422 | 422 | transport_api: |
423 | 423 | requests_topic: "${TB_TRANSPORT_API_REQUEST_TOPIC:tb.transport.api.requests}" |
... | ... | @@ -434,11 +434,12 @@ transport: |
434 | 434 | topic: "${TB_TRANSPORT_NOTIFICATIONS_TOPIC:tb.transport.notifications}" |
435 | 435 | # Local HTTP transport parameters |
436 | 436 | http: |
437 | + enabled: "${MQTT_ENABLED:true}" | |
437 | 438 | request_timeout: "${HTTP_REQUEST_TIMEOUT:60000}" |
438 | 439 | # Local MQTT transport parameters |
439 | 440 | mqtt: |
440 | 441 | # Enable/disable mqtt transport protocol. |
441 | - enabled: "${MQTT_ENABLED:false}" | |
442 | + enabled: "${MQTT_ENABLED:true}" | |
442 | 443 | bind_address: "${MQTT_BIND_ADDRESS:0.0.0.0}" |
443 | 444 | bind_port: "${MQTT_BIND_PORT:1883}" |
444 | 445 | adaptor: "${MQTT_ADAPTOR_NAME:JsonMqttAdaptor}" |
... | ... | @@ -465,7 +466,7 @@ transport: |
465 | 466 | # Local CoAP transport parameters |
466 | 467 | coap: |
467 | 468 | # Enable/disable coap transport protocol. |
468 | - enabled: "${COAP_ENABLED:false}" | |
469 | + enabled: "${COAP_ENABLED:true}" | |
469 | 470 | bind_address: "${COAP_BIND_ADDRESS:0.0.0.0}" |
470 | 471 | bind_port: "${COAP_BIND_PORT:5683}" |
471 | 472 | adaptor: "${COAP_ADAPTOR_NAME:JsonCoapAdaptor}" | ... | ... |
... | ... | @@ -41,6 +41,10 @@ |
41 | 41 | <artifactId>data</artifactId> |
42 | 42 | </dependency> |
43 | 43 | <dependency> |
44 | + <groupId>org.bouncycastle</groupId> | |
45 | + <artifactId>bcprov-jdk15on</artifactId> | |
46 | + </dependency> | |
47 | + <dependency> | |
44 | 48 | <groupId>org.slf4j</groupId> |
45 | 49 | <artifactId>slf4j-api</artifactId> |
46 | 50 | </dependency> | ... | ... |
common/message/src/main/java/org/thingsboard/server/common/msg/EncryptionUtil.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/EncryptionUtil.java
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | * See the License for the specific language governing permissions and |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | -package org.thingsboard.server.dao; | |
16 | +package org.thingsboard.server.common.msg; | |
17 | 17 | |
18 | 18 | import lombok.extern.slf4j.Slf4j; |
19 | 19 | import org.bouncycastle.crypto.digests.SHA3Digest; | ... | ... |
... | ... | @@ -16,7 +16,7 @@ |
16 | 16 | |
17 | 17 | --> |
18 | 18 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
19 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
19 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
20 | 20 | <modelVersion>4.0.0</modelVersion> |
21 | 21 | <parent> |
22 | 22 | <groupId>org.thingsboard</groupId> |
... | ... | @@ -65,6 +65,10 @@ |
65 | 65 | <artifactId>gson</artifactId> |
66 | 66 | </dependency> |
67 | 67 | <dependency> |
68 | + <groupId>org.apache.commons</groupId> | |
69 | + <artifactId>commons-lang3</artifactId> | |
70 | + </dependency> | |
71 | + <dependency> | |
68 | 72 | <groupId>org.slf4j</groupId> |
69 | 73 | <artifactId>slf4j-api</artifactId> |
70 | 74 | </dependency> | ... | ... |
1 | +/** | |
2 | + * Copyright © 2016-2018 The Thingsboard Authors | |
3 | + * | |
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + * you may not use this file except in compliance with the License. | |
6 | + * You may obtain a copy of the License at | |
7 | + * | |
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + * | |
10 | + * Unless required by applicable law or agreed to in writing, software | |
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + * See the License for the specific language governing permissions and | |
14 | + * limitations under the License. | |
15 | + */ | |
16 | +package org.thingsboard.server.kafka; | |
17 | + | |
18 | +import lombok.Getter; | |
19 | +import lombok.extern.slf4j.Slf4j; | |
20 | +import org.springframework.beans.factory.annotation.Value; | |
21 | +import org.springframework.stereotype.Component; | |
22 | +import org.springframework.util.StringUtils; | |
23 | + | |
24 | +import javax.annotation.PostConstruct; | |
25 | +import java.net.InetAddress; | |
26 | +import java.net.UnknownHostException; | |
27 | + | |
28 | +/** | |
29 | + * Created by ashvayka on 12.10.18. | |
30 | + */ | |
31 | +@Slf4j | |
32 | +@Component | |
33 | +public class TbNodeIdProvider { | |
34 | + | |
35 | + @Getter | |
36 | + @Value("${cluster.node_id:#{null}}") | |
37 | + private String nodeId; | |
38 | + | |
39 | + @PostConstruct | |
40 | + public void init() { | |
41 | + if (StringUtils.isEmpty(nodeId)) { | |
42 | + try { | |
43 | + nodeId = InetAddress.getLocalHost().getHostName(); | |
44 | + } catch (UnknownHostException e) { | |
45 | + nodeId = org.apache.commons.lang3.RandomStringUtils.randomAlphabetic(10); | |
46 | + } | |
47 | + } | |
48 | + log.info("Current NodeId: {}", nodeId); | |
49 | + } | |
50 | + | |
51 | +} | ... | ... |
common/transport/mqtt/pom.xml
renamed from
transport/mqtt-common/pom.xml
... | ... | @@ -19,12 +19,12 @@ |
19 | 19 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
20 | 20 | <modelVersion>4.0.0</modelVersion> |
21 | 21 | <parent> |
22 | - <groupId>org.thingsboard</groupId> | |
22 | + <groupId>org.thingsboard.common</groupId> | |
23 | 23 | <version>2.2.0-SNAPSHOT</version> |
24 | 24 | <artifactId>transport</artifactId> |
25 | 25 | </parent> |
26 | - <groupId>org.thingsboard.transport</groupId> | |
27 | - <artifactId>mqtt-common</artifactId> | |
26 | + <groupId>org.thingsboard.common.transport</groupId> | |
27 | + <artifactId>mqtt</artifactId> | |
28 | 28 | <packaging>jar</packaging> |
29 | 29 | |
30 | 30 | <name>Thingsboard MQTT Transport Common</name> |
... | ... | @@ -32,13 +32,13 @@ |
32 | 32 | |
33 | 33 | <properties> |
34 | 34 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
35 | - <main.dir>${basedir}/../..</main.dir> | |
35 | + <main.dir>${basedir}/../../..</main.dir> | |
36 | 36 | </properties> |
37 | 37 | |
38 | 38 | <dependencies> |
39 | 39 | <dependency> |
40 | - <groupId>org.thingsboard.common</groupId> | |
41 | - <artifactId>transport</artifactId> | |
40 | + <groupId>org.thingsboard.common.transport</groupId> | |
41 | + <artifactId>transport-api</artifactId> | |
42 | 42 | </dependency> |
43 | 43 | <dependency> |
44 | 44 | <groupId>io.netty</groupId> |
... | ... | @@ -46,6 +46,10 @@ |
46 | 46 | </dependency> |
47 | 47 | <dependency> |
48 | 48 | <groupId>org.springframework</groupId> |
49 | + <artifactId>spring-context-support</artifactId> | |
50 | + </dependency> | |
51 | + <dependency> | |
52 | + <groupId>org.springframework</groupId> | |
49 | 53 | <artifactId>spring-context</artifactId> |
50 | 54 | </dependency> |
51 | 55 | <dependency> |
... | ... | @@ -69,6 +73,12 @@ |
69 | 73 | <artifactId>guava</artifactId> |
70 | 74 | </dependency> |
71 | 75 | <dependency> |
76 | + <groupId>com.google.code.findbugs</groupId> | |
77 | + <artifactId>jsr305</artifactId> | |
78 | + <version>3.0.1</version> | |
79 | + <optional>true</optional> | |
80 | + </dependency> | |
81 | + <dependency> | |
72 | 82 | <groupId>org.springframework.boot</groupId> |
73 | 83 | <artifactId>spring-boot-starter-test</artifactId> |
74 | 84 | <scope>test</scope> | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttSslHandlerProvider.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/MqttSslHandlerProvider.java
... | ... | @@ -23,12 +23,19 @@ import org.springframework.beans.factory.annotation.Value; |
23 | 23 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
24 | 24 | import org.springframework.stereotype.Component; |
25 | 25 | import org.springframework.util.StringUtils; |
26 | -import org.thingsboard.server.common.data.security.DeviceCredentials; | |
27 | -import org.thingsboard.server.dao.EncryptionUtil; | |
28 | -import org.thingsboard.server.dao.device.DeviceCredentialsService; | |
26 | +import org.thingsboard.server.common.msg.EncryptionUtil; | |
27 | +import org.thingsboard.server.common.transport.TransportService; | |
28 | +import org.thingsboard.server.common.transport.TransportServiceCallback; | |
29 | +import org.thingsboard.server.gen.transport.TransportProtos; | |
29 | 30 | import org.thingsboard.server.transport.mqtt.util.SslUtil; |
30 | 31 | |
31 | -import javax.net.ssl.*; | |
32 | +import javax.net.ssl.KeyManager; | |
33 | +import javax.net.ssl.KeyManagerFactory; | |
34 | +import javax.net.ssl.SSLContext; | |
35 | +import javax.net.ssl.SSLEngine; | |
36 | +import javax.net.ssl.TrustManager; | |
37 | +import javax.net.ssl.TrustManagerFactory; | |
38 | +import javax.net.ssl.X509TrustManager; | |
32 | 39 | import java.io.File; |
33 | 40 | import java.io.FileInputStream; |
34 | 41 | import java.io.IOException; |
... | ... | @@ -37,6 +44,8 @@ import java.net.URL; |
37 | 44 | import java.security.KeyStore; |
38 | 45 | import java.security.cert.CertificateException; |
39 | 46 | import java.security.cert.X509Certificate; |
47 | +import java.util.concurrent.CountDownLatch; | |
48 | +import java.util.concurrent.TimeUnit; | |
40 | 49 | |
41 | 50 | /** |
42 | 51 | * Created by valerii.sosliuk on 11/6/16. |
... | ... | @@ -58,7 +67,7 @@ public class MqttSslHandlerProvider { |
58 | 67 | private String keyStoreType; |
59 | 68 | |
60 | 69 | @Autowired |
61 | - private DeviceCredentialsService deviceCredentialsService; | |
70 | + private TransportService transportService; | |
62 | 71 | |
63 | 72 | public SslHandler getSslHandler() { |
64 | 73 | try { |
... | ... | @@ -111,17 +120,17 @@ public class MqttSslHandlerProvider { |
111 | 120 | break; |
112 | 121 | } |
113 | 122 | } |
114 | - return new ThingsboardMqttX509TrustManager(x509Tm, deviceCredentialsService); | |
123 | + return new ThingsboardMqttX509TrustManager(x509Tm, transportService); | |
115 | 124 | } |
116 | 125 | |
117 | 126 | static class ThingsboardMqttX509TrustManager implements X509TrustManager { |
118 | 127 | |
119 | 128 | private final X509TrustManager trustManager; |
120 | - private DeviceCredentialsService deviceCredentialsService; | |
129 | + private TransportService transportService; | |
121 | 130 | |
122 | - ThingsboardMqttX509TrustManager(X509TrustManager trustManager, DeviceCredentialsService deviceCredentialsService) { | |
131 | + ThingsboardMqttX509TrustManager(X509TrustManager trustManager, TransportService transportService) { | |
123 | 132 | this.trustManager = trustManager; |
124 | - this.deviceCredentialsService = deviceCredentialsService; | |
133 | + this.transportService = transportService; | |
125 | 134 | } |
126 | 135 | |
127 | 136 | @Override |
... | ... | @@ -138,20 +147,39 @@ public class MqttSslHandlerProvider { |
138 | 147 | @Override |
139 | 148 | public void checkClientTrusted(X509Certificate[] chain, |
140 | 149 | String authType) throws CertificateException { |
141 | - DeviceCredentials deviceCredentials = null; | |
150 | + String credentialsBody = null; | |
142 | 151 | for (X509Certificate cert : chain) { |
143 | 152 | try { |
144 | 153 | String strCert = SslUtil.getX509CertificateString(cert); |
145 | 154 | String sha3Hash = EncryptionUtil.getSha3Hash(strCert); |
146 | - deviceCredentials = deviceCredentialsService.findDeviceCredentialsByCredentialsId(sha3Hash); | |
147 | - if (deviceCredentials != null && strCert.equals(deviceCredentials.getCredentialsValue())) { | |
155 | + final String[] credentialsBodyHolder = new String[1]; | |
156 | + CountDownLatch latch = new CountDownLatch(1); | |
157 | + transportService.process(TransportProtos.ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(), | |
158 | + new TransportServiceCallback<TransportProtos.ValidateDeviceCredentialsResponseMsg>() { | |
159 | + @Override | |
160 | + public void onSuccess(TransportProtos.ValidateDeviceCredentialsResponseMsg msg) { | |
161 | + if (!StringUtils.isEmpty(msg.getCredentialsBody())) { | |
162 | + credentialsBodyHolder[0] = msg.getCredentialsBody(); | |
163 | + } | |
164 | + latch.countDown(); | |
165 | + } | |
166 | + | |
167 | + @Override | |
168 | + public void onError(Throwable e) { | |
169 | + log.error(e.getMessage(), e); | |
170 | + latch.countDown(); | |
171 | + } | |
172 | + }); | |
173 | + latch.await(10, TimeUnit.SECONDS); | |
174 | + if (strCert.equals(credentialsBodyHolder[0])) { | |
175 | + credentialsBody = credentialsBodyHolder[0]; | |
148 | 176 | break; |
149 | 177 | } |
150 | - } catch (IOException e) { | |
178 | + } catch (InterruptedException | IOException e) { | |
151 | 179 | log.error(e.getMessage(), e); |
152 | 180 | } |
153 | 181 | } |
154 | - if (deviceCredentials == null) { | |
182 | + if (credentialsBody == null) { | |
155 | 183 | throw new CertificateException("Invalid Device Certificate"); |
156 | 184 | } |
157 | 185 | } | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTopics.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/MqttTopics.java
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportContext.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportContext.java
... | ... | @@ -20,21 +20,17 @@ import io.netty.handler.ssl.SslHandler; |
20 | 20 | import lombok.Data; |
21 | 21 | import lombok.Getter; |
22 | 22 | import lombok.extern.slf4j.Slf4j; |
23 | -import org.apache.commons.lang3.RandomStringUtils; | |
24 | 23 | import org.springframework.beans.factory.annotation.Autowired; |
25 | 24 | import org.springframework.beans.factory.annotation.Value; |
26 | 25 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
27 | -import org.springframework.context.annotation.Lazy; | |
28 | 26 | import org.springframework.stereotype.Component; |
29 | -import org.springframework.util.StringUtils; | |
30 | 27 | import org.thingsboard.server.common.transport.TransportService; |
31 | 28 | import org.thingsboard.server.common.transport.quota.host.HostRequestsQuotaService; |
29 | +import org.thingsboard.server.kafka.TbNodeIdProvider; | |
32 | 30 | import org.thingsboard.server.transport.mqtt.adaptors.MqttTransportAdaptor; |
33 | 31 | |
34 | 32 | import javax.annotation.PostConstruct; |
35 | 33 | import javax.annotation.PreDestroy; |
36 | -import java.net.InetAddress; | |
37 | -import java.net.UnknownHostException; | |
38 | 34 | import java.util.concurrent.ExecutorService; |
39 | 35 | import java.util.concurrent.Executors; |
40 | 36 | |
... | ... | @@ -61,11 +57,12 @@ public class MqttTransportContext { |
61 | 57 | @Autowired |
62 | 58 | private MqttTransportAdaptor adaptor; |
63 | 59 | |
60 | + @Autowired | |
61 | + private TbNodeIdProvider nodeIdProvider; | |
62 | + | |
64 | 63 | @Value("${transport.mqtt.netty.max_payload_size}") |
65 | 64 | private Integer maxPayloadSize; |
66 | 65 | |
67 | - @Value("${cluster.node_id:#{null}}") | |
68 | - private String nodeId; | |
69 | 66 | |
70 | 67 | private SslHandler sslHandler; |
71 | 68 | |
... | ... | @@ -74,14 +71,6 @@ public class MqttTransportContext { |
74 | 71 | |
75 | 72 | @PostConstruct |
76 | 73 | public void init() { |
77 | - if (StringUtils.isEmpty(nodeId)) { | |
78 | - try { | |
79 | - nodeId = InetAddress.getLocalHost().getHostName(); | |
80 | - } catch (UnknownHostException e) { | |
81 | - nodeId = RandomStringUtils.randomAlphabetic(10); | |
82 | - } | |
83 | - } | |
84 | - log.info("Current NodeId: {}", nodeId); | |
85 | 74 | executor = Executors.newCachedThreadPool(); |
86 | 75 | } |
87 | 76 | |
... | ... | @@ -92,4 +81,7 @@ public class MqttTransportContext { |
92 | 81 | } |
93 | 82 | } |
94 | 83 | |
84 | + public String getNodeId() { | |
85 | + return nodeIdProvider.getNodeId(); | |
86 | + } | |
95 | 87 | } | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java
... | ... | @@ -43,7 +43,7 @@ import org.thingsboard.server.common.transport.TransportService; |
43 | 43 | import org.thingsboard.server.common.transport.TransportServiceCallback; |
44 | 44 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
45 | 45 | import org.thingsboard.server.common.transport.quota.QuotaService; |
46 | -import org.thingsboard.server.dao.EncryptionUtil; | |
46 | +import org.thingsboard.server.common.msg.EncryptionUtil; | |
47 | 47 | import org.thingsboard.server.gen.transport.TransportProtos; |
48 | 48 | import org.thingsboard.server.gen.transport.TransportProtos.DeviceInfoProto; |
49 | 49 | import org.thingsboard.server.gen.transport.TransportProtos.SessionEvent; | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportServerInitializer.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportServerInitializer.java
... | ... | @@ -21,13 +21,6 @@ import io.netty.channel.socket.SocketChannel; |
21 | 21 | import io.netty.handler.codec.mqtt.MqttDecoder; |
22 | 22 | import io.netty.handler.codec.mqtt.MqttEncoder; |
23 | 23 | import io.netty.handler.ssl.SslHandler; |
24 | -import org.thingsboard.server.common.transport.SessionMsgProcessor; | |
25 | -import org.thingsboard.server.common.transport.TransportService; | |
26 | -import org.thingsboard.server.common.transport.auth.DeviceAuthService; | |
27 | -import org.thingsboard.server.common.transport.quota.QuotaService; | |
28 | -import org.thingsboard.server.dao.device.DeviceService; | |
29 | -import org.thingsboard.server.dao.relation.RelationService; | |
30 | -import org.thingsboard.server.transport.mqtt.adaptors.MqttTransportAdaptor; | |
31 | 24 | |
32 | 25 | /** |
33 | 26 | * @author Andrew Shvayka | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportService.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportService.java
... | ... | @@ -23,19 +23,9 @@ import io.netty.channel.socket.nio.NioServerSocketChannel; |
23 | 23 | import io.netty.util.ResourceLeakDetector; |
24 | 24 | import lombok.extern.slf4j.Slf4j; |
25 | 25 | import org.springframework.beans.factory.annotation.Autowired; |
26 | -import org.springframework.beans.factory.annotation.Qualifier; | |
27 | 26 | import org.springframework.beans.factory.annotation.Value; |
28 | 27 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
29 | -import org.springframework.context.ApplicationContext; | |
30 | -import org.springframework.context.annotation.Lazy; | |
31 | 28 | import org.springframework.stereotype.Service; |
32 | -import org.thingsboard.server.common.transport.SessionMsgProcessor; | |
33 | -import org.thingsboard.server.common.transport.TransportService; | |
34 | -import org.thingsboard.server.common.transport.auth.DeviceAuthService; | |
35 | -import org.thingsboard.server.common.transport.quota.host.HostRequestsQuotaService; | |
36 | -import org.thingsboard.server.dao.device.DeviceService; | |
37 | -import org.thingsboard.server.dao.relation.RelationService; | |
38 | -import org.thingsboard.server.transport.mqtt.adaptors.MqttTransportAdaptor; | |
39 | 29 | |
40 | 30 | import javax.annotation.PostConstruct; |
41 | 31 | import javax.annotation.PreDestroy; | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/adaptors/JsonMqttAdaptor.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/adaptors/JsonMqttAdaptor.java
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/adaptors/MqttTransportAdaptor.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/adaptors/MqttTransportAdaptor.java
... | ... | @@ -18,7 +18,6 @@ package org.thingsboard.server.transport.mqtt.adaptors; |
18 | 18 | import io.netty.handler.codec.mqtt.MqttMessage; |
19 | 19 | import io.netty.handler.codec.mqtt.MqttPublishMessage; |
20 | 20 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
21 | -import org.thingsboard.server.gen.transport.TransportProtos; | |
22 | 21 | import org.thingsboard.server.gen.transport.TransportProtos.AttributeUpdateNotificationMsg; |
23 | 22 | import org.thingsboard.server.gen.transport.TransportProtos.GetAttributeRequestMsg; |
24 | 23 | import org.thingsboard.server.gen.transport.TransportProtos.GetAttributeResponseMsg; | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/DeviceSessionCtx.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/session/DeviceSessionCtx.java
... | ... | @@ -16,11 +16,8 @@ |
16 | 16 | package org.thingsboard.server.transport.mqtt.session; |
17 | 17 | |
18 | 18 | import io.netty.channel.ChannelHandlerContext; |
19 | -import io.netty.handler.codec.mqtt.MqttMessage; | |
20 | 19 | import lombok.Getter; |
21 | 20 | import lombok.extern.slf4j.Slf4j; |
22 | -import org.thingsboard.server.common.msg.session.ex.SessionException; | |
23 | -import org.thingsboard.server.common.transport.adaptor.AdaptorException; | |
24 | 21 | |
25 | 22 | import java.util.UUID; |
26 | 23 | import java.util.concurrent.ConcurrentMap; | ... | ... |
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewayDeviceSessionCtx.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewayDeviceSessionCtx.java
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionHandler.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionHandler.java
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/MqttDeviceAwareSessionContext.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/session/MqttDeviceAwareSessionContext.java
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/MqttTopicMatcher.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/session/MqttTopicMatcher.java
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/util/SslUtil.java
renamed from
transport/mqtt-common/src/main/java/org/thingsboard/server/transport/mqtt/util/SslUtil.java
... | ... | @@ -17,7 +17,7 @@ package org.thingsboard.server.transport.mqtt.util; |
17 | 17 | |
18 | 18 | import lombok.extern.slf4j.Slf4j; |
19 | 19 | import org.springframework.util.Base64Utils; |
20 | -import org.thingsboard.server.dao.EncryptionUtil; | |
20 | +import org.thingsboard.server.common.msg.EncryptionUtil; | |
21 | 21 | |
22 | 22 | import java.io.IOException; |
23 | 23 | import java.security.cert.CertificateEncodingException; | ... | ... |
... | ... | @@ -16,7 +16,7 @@ |
16 | 16 | |
17 | 17 | --> |
18 | 18 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
19 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
19 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
20 | 20 | <modelVersion>4.0.0</modelVersion> |
21 | 21 | <parent> |
22 | 22 | <groupId>org.thingsboard</groupId> |
... | ... | @@ -25,85 +25,20 @@ |
25 | 25 | </parent> |
26 | 26 | <groupId>org.thingsboard.common</groupId> |
27 | 27 | <artifactId>transport</artifactId> |
28 | - <packaging>jar</packaging> | |
28 | + <packaging>pom</packaging> | |
29 | 29 | |
30 | - <name>Thingsboard Server Common Transport components</name> | |
30 | + <name>Thingsboard Server Commons</name> | |
31 | 31 | <url>https://thingsboard.io</url> |
32 | 32 | |
33 | 33 | <properties> |
34 | 34 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
35 | 35 | <main.dir>${basedir}/../..</main.dir> |
36 | 36 | </properties> |
37 | - | |
38 | - <dependencies> | |
39 | - <dependency> | |
40 | - <groupId>org.thingsboard.common</groupId> | |
41 | - <artifactId>data</artifactId> | |
42 | - </dependency> | |
43 | - <dependency> | |
44 | - <groupId>org.thingsboard.common</groupId> | |
45 | - <artifactId>message</artifactId> | |
46 | - </dependency> | |
47 | - <dependency> | |
48 | - <groupId>com.google.code.gson</groupId> | |
49 | - <artifactId>gson</artifactId> | |
50 | - </dependency> | |
51 | - <dependency> | |
52 | - <groupId>org.slf4j</groupId> | |
53 | - <artifactId>slf4j-api</artifactId> | |
54 | - </dependency> | |
55 | - <dependency> | |
56 | - <groupId>org.slf4j</groupId> | |
57 | - <artifactId>log4j-over-slf4j</artifactId> | |
58 | - </dependency> | |
59 | - <dependency> | |
60 | - <groupId>ch.qos.logback</groupId> | |
61 | - <artifactId>logback-core</artifactId> | |
62 | - </dependency> | |
63 | - <dependency> | |
64 | - <groupId>ch.qos.logback</groupId> | |
65 | - <artifactId>logback-classic</artifactId> | |
66 | - </dependency> | |
67 | - <dependency> | |
68 | - <groupId>junit</groupId> | |
69 | - <artifactId>junit</artifactId> | |
70 | - <scope>test</scope> | |
71 | - </dependency> | |
72 | - <dependency> | |
73 | - <groupId>org.mockito</groupId> | |
74 | - <artifactId>mockito-all</artifactId> | |
75 | - <scope>test</scope> | |
76 | - </dependency> | |
77 | - <dependency> | |
78 | - <groupId>org.springframework</groupId> | |
79 | - <artifactId>spring-context</artifactId> | |
80 | - </dependency> | |
81 | - <dependency> | |
82 | - <groupId>org.springframework.boot</groupId> | |
83 | - <artifactId>spring-boot-starter-web</artifactId> | |
84 | - <scope>provided</scope> | |
85 | - </dependency> | |
86 | - <dependency> | |
87 | - <groupId>com.google.guava</groupId> | |
88 | - <artifactId>guava</artifactId> | |
89 | - </dependency> | |
90 | - <dependency> | |
91 | - <groupId>org.apache.commons</groupId> | |
92 | - <artifactId>commons-lang3</artifactId> | |
93 | - </dependency> | |
94 | - <dependency> | |
95 | - <groupId>com.google.protobuf</groupId> | |
96 | - <artifactId>protobuf-java</artifactId> | |
97 | - </dependency> | |
98 | - </dependencies> | |
99 | - | |
100 | - <build> | |
101 | - <plugins> | |
102 | - <plugin> | |
103 | - <groupId>org.xolstice.maven.plugins</groupId> | |
104 | - <artifactId>protobuf-maven-plugin</artifactId> | |
105 | - </plugin> | |
106 | - </plugins> | |
107 | - </build> | |
37 | + <modules> | |
38 | + <module>transport-api</module> | |
39 | + <module>mqtt</module> | |
40 | + <!--module>http</module--> | |
41 | + <!--module>coap</module--> | |
42 | + </modules> | |
108 | 43 | |
109 | 44 | </project> | ... | ... |
common/transport/transport-api/pom.xml
0 → 100644
1 | +<!-- | |
2 | + | |
3 | + Copyright © 2016-2018 The Thingsboard Authors | |
4 | + | |
5 | + Licensed under the Apache License, Version 2.0 (the "License"); | |
6 | + you may not use this file except in compliance with the License. | |
7 | + You may obtain a copy of the License at | |
8 | + | |
9 | + http://www.apache.org/licenses/LICENSE-2.0 | |
10 | + | |
11 | + Unless required by applicable law or agreed to in writing, software | |
12 | + distributed under the License is distributed on an "AS IS" BASIS, | |
13 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | + See the License for the specific language governing permissions and | |
15 | + limitations under the License. | |
16 | + | |
17 | +--> | |
18 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
19 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
20 | + <modelVersion>4.0.0</modelVersion> | |
21 | + <parent> | |
22 | + <groupId>org.thingsboard.common</groupId> | |
23 | + <version>2.2.0-SNAPSHOT</version> | |
24 | + <artifactId>transport</artifactId> | |
25 | + </parent> | |
26 | + <groupId>org.thingsboard.common.transport</groupId> | |
27 | + <artifactId>transport-api</artifactId> | |
28 | + <packaging>jar</packaging> | |
29 | + | |
30 | + <name>Thingsboard Server Common Transport components</name> | |
31 | + <url>https://thingsboard.io</url> | |
32 | + | |
33 | + <properties> | |
34 | + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
35 | + <main.dir>${basedir}/../../..</main.dir> | |
36 | + </properties> | |
37 | + | |
38 | + <dependencies> | |
39 | + <dependency> | |
40 | + <groupId>org.thingsboard.common</groupId> | |
41 | + <artifactId>data</artifactId> | |
42 | + </dependency> | |
43 | + <dependency> | |
44 | + <groupId>org.thingsboard.common</groupId> | |
45 | + <artifactId>message</artifactId> | |
46 | + </dependency> | |
47 | + <dependency> | |
48 | + <groupId>org.thingsboard.common</groupId> | |
49 | + <artifactId>queue</artifactId> | |
50 | + </dependency> | |
51 | + <dependency> | |
52 | + <groupId>com.google.code.gson</groupId> | |
53 | + <artifactId>gson</artifactId> | |
54 | + </dependency> | |
55 | + <dependency> | |
56 | + <groupId>org.slf4j</groupId> | |
57 | + <artifactId>slf4j-api</artifactId> | |
58 | + </dependency> | |
59 | + <dependency> | |
60 | + <groupId>org.slf4j</groupId> | |
61 | + <artifactId>log4j-over-slf4j</artifactId> | |
62 | + </dependency> | |
63 | + <dependency> | |
64 | + <groupId>ch.qos.logback</groupId> | |
65 | + <artifactId>logback-core</artifactId> | |
66 | + </dependency> | |
67 | + <dependency> | |
68 | + <groupId>ch.qos.logback</groupId> | |
69 | + <artifactId>logback-classic</artifactId> | |
70 | + </dependency> | |
71 | + <dependency> | |
72 | + <groupId>junit</groupId> | |
73 | + <artifactId>junit</artifactId> | |
74 | + <scope>test</scope> | |
75 | + </dependency> | |
76 | + <dependency> | |
77 | + <groupId>org.mockito</groupId> | |
78 | + <artifactId>mockito-all</artifactId> | |
79 | + <scope>test</scope> | |
80 | + </dependency> | |
81 | + <dependency> | |
82 | + <groupId>org.springframework</groupId> | |
83 | + <artifactId>spring-context</artifactId> | |
84 | + </dependency> | |
85 | + <dependency> | |
86 | + <groupId>org.springframework.boot</groupId> | |
87 | + <artifactId>spring-boot-starter-web</artifactId> | |
88 | + <scope>provided</scope> | |
89 | + </dependency> | |
90 | + <dependency> | |
91 | + <groupId>com.google.guava</groupId> | |
92 | + <artifactId>guava</artifactId> | |
93 | + </dependency> | |
94 | + <dependency> | |
95 | + <groupId>org.apache.commons</groupId> | |
96 | + <artifactId>commons-lang3</artifactId> | |
97 | + </dependency> | |
98 | + <dependency> | |
99 | + <groupId>com.google.protobuf</groupId> | |
100 | + <artifactId>protobuf-java</artifactId> | |
101 | + </dependency> | |
102 | + </dependencies> | |
103 | + | |
104 | + <build> | |
105 | + <plugins> | |
106 | + <plugin> | |
107 | + <groupId>org.xolstice.maven.plugins</groupId> | |
108 | + <artifactId>protobuf-maven-plugin</artifactId> | |
109 | + </plugin> | |
110 | + </plugins> | |
111 | + </build> | |
112 | + | |
113 | +</project> | ... | ... |
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/SessionMsgListener.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/SessionMsgListener.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/SessionMsgProcessor.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/SessionMsgProcessor.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportAdaptor.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/TransportAdaptor.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/TransportService.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportServiceCallback.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/TransportServiceCallback.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/adaptor/AdaptorException.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/adaptor/AdaptorException.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/adaptor/JsonConverter.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/adaptor/JsonConverter.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/auth/DeviceAuthResult.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/auth/DeviceAuthResult.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/auth/DeviceAuthService.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/auth/DeviceAuthService.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/AbstractQuotaService.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/AbstractQuotaService.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/Clock.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/Clock.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/QuotaService.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/QuotaService.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/RequestLimitPolicy.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/RequestLimitPolicy.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/host/HostIntervalRegistryCleaner.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/host/HostIntervalRegistryCleaner.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/host/HostIntervalRegistryLogger.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/host/HostIntervalRegistryLogger.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/host/HostRequestIntervalRegistry.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/host/HostRequestIntervalRegistry.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/host/HostRequestLimitPolicy.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/host/HostRequestLimitPolicy.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/host/HostRequestsQuotaService.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/host/HostRequestsQuotaService.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalCount.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalCount.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalRegistryCleaner.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalRegistryCleaner.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalRegistryLogger.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalRegistryLogger.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/KeyBasedIntervalRegistry.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/inmemory/KeyBasedIntervalRegistry.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantIntervalRegistryCleaner.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantIntervalRegistryCleaner.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantIntervalRegistryLogger.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantIntervalRegistryLogger.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantMsgsIntervalRegistry.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantMsgsIntervalRegistry.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantQuotaService.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantQuotaService.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantRequestLimitPolicy.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/quota/tenant/TenantRequestLimitPolicy.java
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/RemoteTransportService.java
renamed from
transport/mqtt-transport/src/main/java/org/thingsboard/server/mqtt/service/MqttTransportService.java
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | * See the License for the specific language governing permissions and |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | -package org.thingsboard.server.mqtt.service; | |
16 | +package org.thingsboard.server.common.transport.service; | |
17 | 17 | |
18 | 18 | import lombok.extern.slf4j.Slf4j; |
19 | 19 | import org.apache.kafka.clients.consumer.ConsumerRecords; |
... | ... | @@ -21,6 +21,7 @@ import org.apache.kafka.clients.producer.Callback; |
21 | 21 | import org.apache.kafka.clients.producer.RecordMetadata; |
22 | 22 | import org.springframework.beans.factory.annotation.Autowired; |
23 | 23 | import org.springframework.beans.factory.annotation.Value; |
24 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | |
24 | 25 | import org.springframework.stereotype.Service; |
25 | 26 | import org.thingsboard.server.common.transport.SessionMsgListener; |
26 | 27 | import org.thingsboard.server.common.transport.TransportService; |
... | ... | @@ -44,7 +45,7 @@ import org.thingsboard.server.kafka.TBKafkaConsumerTemplate; |
44 | 45 | import org.thingsboard.server.kafka.TBKafkaProducerTemplate; |
45 | 46 | import org.thingsboard.server.kafka.TbKafkaRequestTemplate; |
46 | 47 | import org.thingsboard.server.kafka.TbKafkaSettings; |
47 | -import org.thingsboard.server.transport.mqtt.MqttTransportContext; | |
48 | +import org.thingsboard.server.kafka.TbNodeIdProvider; | |
48 | 49 | |
49 | 50 | import javax.annotation.PostConstruct; |
50 | 51 | import javax.annotation.PreDestroy; |
... | ... | @@ -58,9 +59,10 @@ import java.util.concurrent.Executors; |
58 | 59 | /** |
59 | 60 | * Created by ashvayka on 05.10.18. |
60 | 61 | */ |
62 | +@ConditionalOnProperty(prefix = "transport", value = "type", havingValue = "remote", matchIfMissing = true) | |
61 | 63 | @Service |
62 | 64 | @Slf4j |
63 | -public class MqttTransportService implements TransportService { | |
65 | +public class RemoteTransportService implements TransportService { | |
64 | 66 | |
65 | 67 | @Value("${kafka.rule_engine.topic}") |
66 | 68 | private String ruleEngineTopic; |
... | ... | @@ -89,7 +91,7 @@ public class MqttTransportService implements TransportService { |
89 | 91 | private TbKafkaSettings kafkaSettings; |
90 | 92 | //We use this to get the node id. We should replace this with a component that provides the node id. |
91 | 93 | @Autowired |
92 | - private MqttTransportContext transportContext; | |
94 | + private TbNodeIdProvider nodeIdProvider; | |
93 | 95 | |
94 | 96 | private ExecutorService transportCallbackExecutor; |
95 | 97 | |
... | ... | @@ -112,8 +114,8 @@ public class MqttTransportService implements TransportService { |
112 | 114 | |
113 | 115 | TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TransportApiResponseMsg> responseBuilder = TBKafkaConsumerTemplate.builder(); |
114 | 116 | responseBuilder.settings(kafkaSettings); |
115 | - responseBuilder.topic(transportApiResponsesTopic + "." + transportContext.getNodeId()); | |
116 | - responseBuilder.clientId("transport-api-client-" + transportContext.getNodeId()); | |
117 | + responseBuilder.topic(transportApiResponsesTopic + "." + nodeIdProvider.getNodeId()); | |
118 | + responseBuilder.clientId("transport-api-client-" + nodeIdProvider.getNodeId()); | |
117 | 119 | responseBuilder.groupId("transport-api-client"); |
118 | 120 | responseBuilder.autoCommit(true); |
119 | 121 | responseBuilder.autoCommitIntervalMs(autoCommitInterval); |
... | ... | @@ -138,8 +140,8 @@ public class MqttTransportService implements TransportService { |
138 | 140 | |
139 | 141 | TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<ToTransportMsg> mainConsumerBuilder = TBKafkaConsumerTemplate.builder(); |
140 | 142 | mainConsumerBuilder.settings(kafkaSettings); |
141 | - mainConsumerBuilder.topic(notificationsTopic + "." + transportContext.getNodeId()); | |
142 | - mainConsumerBuilder.clientId("transport-" + transportContext.getNodeId()); | |
143 | + mainConsumerBuilder.topic(notificationsTopic + "." + nodeIdProvider.getNodeId()); | |
144 | + mainConsumerBuilder.clientId("transport-" + nodeIdProvider.getNodeId()); | |
143 | 145 | mainConsumerBuilder.groupId("transport"); |
144 | 146 | mainConsumerBuilder.autoCommit(true); |
145 | 147 | mainConsumerBuilder.autoCommitIntervalMs(notificationsAutoCommitInterval); | ... | ... |
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/ToRuleEngineMsgEncoder.java
renamed from
transport/mqtt-transport/src/main/java/org/thingsboard/server/mqtt/service/ToRuleEngineMsgEncoder.java
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | * See the License for the specific language governing permissions and |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | -package org.thingsboard.server.mqtt.service; | |
16 | +package org.thingsboard.server.common.transport.service; | |
17 | 17 | |
18 | 18 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
19 | 19 | import org.thingsboard.server.kafka.TbKafkaEncoder; | ... | ... |
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/ToTransportMsgResponseDecoder.java
renamed from
transport/mqtt-transport/src/main/java/org/thingsboard/server/mqtt/service/ToTransportMsgResponseDecoder.java
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | * See the License for the specific language governing permissions and |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | -package org.thingsboard.server.mqtt.service; | |
16 | +package org.thingsboard.server.common.transport.service; | |
17 | 17 | |
18 | 18 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
19 | 19 | import org.thingsboard.server.kafka.TbKafkaDecoder; | ... | ... |
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/TransportApiRequestEncoder.java
renamed from
transport/mqtt-transport/src/main/java/org/thingsboard/server/mqtt/service/TransportApiRequestEncoder.java
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | * See the License for the specific language governing permissions and |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | -package org.thingsboard.server.mqtt.service; | |
16 | +package org.thingsboard.server.common.transport.service; | |
17 | 17 | |
18 | 18 | import org.thingsboard.server.gen.transport.TransportProtos.TransportApiRequestMsg; |
19 | 19 | import org.thingsboard.server.kafka.TbKafkaEncoder; | ... | ... |
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/TransportApiResponseDecoder.java
renamed from
transport/mqtt-transport/src/main/java/org/thingsboard/server/mqtt/service/TransportApiResponseDecoder.java
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | * See the License for the specific language governing permissions and |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | -package org.thingsboard.server.mqtt.service; | |
16 | +package org.thingsboard.server.common.transport.service; | |
17 | 17 | |
18 | 18 | import org.thingsboard.server.gen.transport.TransportProtos.TransportApiResponseMsg; |
19 | 19 | import org.thingsboard.server.kafka.TbKafkaDecoder; | ... | ... |
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/session/DeviceAwareSessionContext.java
renamed from
common/transport/src/main/java/org/thingsboard/server/common/transport/session/DeviceAwareSessionContext.java
common/transport/transport-api/src/main/proto/transport.proto
renamed from
common/transport/src/main/proto/transport.proto
common/transport/transport-api/src/test/java/org/thingsboard/server/common/transport/quota/ClockTest.java
renamed from
common/transport/src/test/java/org/thingsboard/server/common/transport/quota/ClockTest.java
common/transport/transport-api/src/test/java/org/thingsboard/server/common/transport/quota/HostRequestLimitPolicyTest.java
renamed from
common/transport/src/test/java/org/thingsboard/server/common/transport/quota/HostRequestLimitPolicyTest.java
common/transport/transport-api/src/test/java/org/thingsboard/server/common/transport/quota/HostRequestsQuotaServiceTest.java
renamed from
common/transport/src/test/java/org/thingsboard/server/common/transport/quota/HostRequestsQuotaServiceTest.java
common/transport/transport-api/src/test/java/org/thingsboard/server/common/transport/quota/inmemory/HostRequestIntervalRegistryTest.java
renamed from
common/transport/src/test/java/org/thingsboard/server/common/transport/quota/inmemory/HostRequestIntervalRegistryTest.java
common/transport/transport-api/src/test/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalCountTest.java
renamed from
common/transport/src/test/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalCountTest.java
common/transport/transport-api/src/test/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalRegistryLoggerTest.java
renamed from
common/transport/src/test/java/org/thingsboard/server/common/transport/quota/inmemory/IntervalRegistryLoggerTest.java
... | ... | @@ -26,7 +26,7 @@ import org.thingsboard.server.common.data.Device; |
26 | 26 | import org.thingsboard.server.common.data.id.DeviceId; |
27 | 27 | import org.thingsboard.server.common.data.security.DeviceCredentials; |
28 | 28 | import org.thingsboard.server.common.data.security.DeviceCredentialsType; |
29 | -import org.thingsboard.server.dao.EncryptionUtil; | |
29 | +import org.thingsboard.server.common.msg.EncryptionUtil; | |
30 | 30 | import org.thingsboard.server.dao.exception.DataValidationException; |
31 | 31 | import org.thingsboard.server.dao.service.DataValidator; |
32 | 32 | ... | ... |
... | ... | @@ -355,18 +355,23 @@ |
355 | 355 | <version>${project.version}</version> |
356 | 356 | </dependency> |
357 | 357 | <dependency> |
358 | - <groupId>org.thingsboard.transport</groupId> | |
359 | - <artifactId>http</artifactId> | |
358 | + <groupId>org.thingsboard.common.transport</groupId> | |
359 | + <artifactId>transport-api</artifactId> | |
360 | + <version>${project.version}</version> | |
361 | + </dependency> | |
362 | + <dependency> | |
363 | + <groupId>org.thingsboard.common.transport</groupId> | |
364 | + <artifactId>mqtt</artifactId> | |
360 | 365 | <version>${project.version}</version> |
361 | 366 | </dependency> |
362 | 367 | <dependency> |
363 | 368 | <groupId>org.thingsboard.transport</groupId> |
364 | - <artifactId>coap</artifactId> | |
369 | + <artifactId>http</artifactId> | |
365 | 370 | <version>${project.version}</version> |
366 | 371 | </dependency> |
367 | 372 | <dependency> |
368 | 373 | <groupId>org.thingsboard.transport</groupId> |
369 | - <artifactId>mqtt-common</artifactId> | |
374 | + <artifactId>coap</artifactId> | |
370 | 375 | <version>${project.version}</version> |
371 | 376 | </dependency> |
372 | 377 | <dependency> | ... | ... |
... | ... | @@ -72,6 +72,10 @@ |
72 | 72 | <artifactId>guava</artifactId> |
73 | 73 | </dependency> |
74 | 74 | <dependency> |
75 | + <groupId>com.google.code.gson</groupId> | |
76 | + <artifactId>gson</artifactId> | |
77 | + </dependency> | |
78 | + <dependency> | |
75 | 79 | <groupId>org.springframework</groupId> |
76 | 80 | <artifactId>spring-web</artifactId> |
77 | 81 | <scope>provided</scope> | ... | ... |
... | ... | @@ -25,7 +25,6 @@ import org.thingsboard.rule.engine.api.TbContext; |
25 | 25 | import org.thingsboard.rule.engine.api.TbNode; |
26 | 26 | import org.thingsboard.rule.engine.api.TbNodeConfiguration; |
27 | 27 | import org.thingsboard.rule.engine.api.TbNodeException; |
28 | -import org.thingsboard.rule.engine.api.TbRelationTypes; | |
29 | 28 | import org.thingsboard.rule.engine.api.util.DonAsynchron; |
30 | 29 | import org.thingsboard.rule.engine.api.util.TbNodeUtils; |
31 | 30 | import org.thingsboard.server.common.data.DataConstants; | ... | ... |
... | ... | @@ -23,7 +23,6 @@ import org.springframework.http.HttpStatus; |
23 | 23 | import org.springframework.http.ResponseEntity; |
24 | 24 | import org.springframework.web.bind.annotation.*; |
25 | 25 | import org.springframework.web.context.request.async.DeferredResult; |
26 | -import org.thingsboard.server.common.msg.core.*; | |
27 | 26 | import org.thingsboard.server.common.transport.SessionMsgProcessor; |
28 | 27 | import org.thingsboard.server.common.transport.auth.DeviceAuthService; |
29 | 28 | import org.thingsboard.server.common.transport.quota.host.HostRequestsQuotaService; | ... | ... |
... | ... | @@ -15,22 +15,10 @@ |
15 | 15 | */ |
16 | 16 | package org.thingsboard.server.transport.http.session; |
17 | 17 | |
18 | -import com.google.gson.JsonObject; | |
19 | 18 | import lombok.extern.slf4j.Slf4j; |
20 | -import org.springframework.http.HttpStatus; | |
21 | -import org.springframework.http.ResponseEntity; | |
22 | -import org.springframework.web.context.request.async.DeferredResult; | |
23 | -import org.thingsboard.server.common.msg.core.*; | |
24 | -import org.thingsboard.server.common.msg.session.*; | |
25 | -import org.thingsboard.server.common.msg.session.ex.SessionException; | |
26 | -import org.thingsboard.server.common.transport.SessionMsgProcessor; | |
27 | -import org.thingsboard.server.common.transport.adaptor.JsonConverter; | |
28 | -import org.thingsboard.server.common.transport.auth.DeviceAuthService; | |
29 | 19 | import org.thingsboard.server.common.transport.session.DeviceAwareSessionContext; |
30 | 20 | |
31 | -import java.util.Optional; | |
32 | 21 | import java.util.UUID; |
33 | -import java.util.function.Consumer; | |
34 | 22 | |
35 | 23 | /** |
36 | 24 | * @author Andrew Shvayka | ... | ... |
... | ... | @@ -37,12 +37,8 @@ |
37 | 37 | |
38 | 38 | <dependencies> |
39 | 39 | <dependency> |
40 | - <groupId>org.thingsboard.common</groupId> | |
41 | - <artifactId>transport</artifactId> | |
42 | - </dependency> | |
43 | - <dependency> | |
44 | - <groupId>org.thingsboard.transport</groupId> | |
45 | - <artifactId>mqtt-common</artifactId> | |
40 | + <groupId>org.thingsboard.common.transport</groupId> | |
41 | + <artifactId>mqtt</artifactId> | |
46 | 42 | </dependency> |
47 | 43 | <dependency> |
48 | 44 | <groupId>org.thingsboard.common</groupId> | ... | ... |
... | ... | @@ -23,7 +23,6 @@ |
23 | 23 | <version>2.2.0-SNAPSHOT</version> |
24 | 24 | <artifactId>thingsboard</artifactId> |
25 | 25 | </parent> |
26 | - <groupId>org.thingsboard</groupId> | |
27 | 26 | <artifactId>transport</artifactId> |
28 | 27 | <packaging>pom</packaging> |
29 | 28 | |
... | ... | @@ -37,7 +36,6 @@ |
37 | 36 | <modules> |
38 | 37 | <module>http</module> |
39 | 38 | <!--<module>coap</module>--> |
40 | - <module>mqtt-common</module> | |
41 | 39 | <module>mqtt-transport</module> |
42 | 40 | </modules> |
43 | 41 | ... | ... |