Commit 522d392777cb41453a46fd820eee125dfe06072f

Authored by Andrew Shvayka
1 parent 96d344fa

RPC and MQTT packet size bug fixes

@@ -54,40 +54,4 @@ @@ -54,40 +54,4 @@
54 </dependency> 54 </dependency>
55 </dependencies> 55 </dependencies>
56 56
57 - <build>  
58 - <plugins>  
59 - <plugin>  
60 - <groupId>org.apache.maven.plugins</groupId>  
61 - <artifactId>maven-shade-plugin</artifactId>  
62 - <executions>  
63 - <execution>  
64 - <phase>package</phase>  
65 - <goals>  
66 - <goal>shade</goal>  
67 - </goals>  
68 - <configuration>  
69 - <filters>  
70 - <filter>  
71 - <artifact>*:*</artifact>  
72 - <excludes>  
73 - <exclude>META-INF/*.SF</exclude>  
74 - <exclude>META-INF/*.DSA</exclude>  
75 - <exclude>META-INF/*.RSA</exclude>  
76 - </excludes>  
77 - </filter>  
78 - </filters>  
79 - <transformers>  
80 - <transformer  
81 - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
82 - <manifestEntries>  
83 - <Main-Class>org.thingsboard.client.tools.MqttStressTestTool</Main-Class>  
84 - </manifestEntries>  
85 - </transformer>  
86 - </transformers>  
87 - </configuration>  
88 - </execution>  
89 - </executions>  
90 - </plugin>  
91 - </plugins>  
92 - </build>  
93 </project> 57 </project>
@@ -27,6 +27,7 @@ import org.springframework.http.client.support.HttpRequestWrapper; @@ -27,6 +27,7 @@ import org.springframework.http.client.support.HttpRequestWrapper;
27 import org.springframework.web.client.HttpClientErrorException; 27 import org.springframework.web.client.HttpClientErrorException;
28 import org.springframework.web.client.RestTemplate; 28 import org.springframework.web.client.RestTemplate;
29 import org.thingsboard.server.common.data.Device; 29 import org.thingsboard.server.common.data.Device;
  30 +import org.thingsboard.server.common.data.id.CustomerId;
30 import org.thingsboard.server.common.data.id.DeviceId; 31 import org.thingsboard.server.common.data.id.DeviceId;
31 import org.thingsboard.server.common.data.security.DeviceCredentials; 32 import org.thingsboard.server.common.data.security.DeviceCredentials;
32 33
@@ -76,6 +77,12 @@ public class RestClient implements ClientHttpRequestInterceptor { @@ -76,6 +77,12 @@ public class RestClient implements ClientHttpRequestInterceptor {
76 return restTemplate.postForEntity(baseURL + "/api/device", device, Device.class).getBody(); 77 return restTemplate.postForEntity(baseURL + "/api/device", device, Device.class).getBody();
77 } 78 }
78 79
  80 +
  81 + public Device assignDevice(CustomerId customerId, DeviceId deviceId) {
  82 + return restTemplate.postForEntity(baseURL + "/api/customer/{customerId}/device/{deviceId}", null, Device.class,
  83 + customerId.toString(), deviceId.toString()).getBody();
  84 + }
  85 +
79 public DeviceCredentials getCredentials(DeviceId id) { 86 public DeviceCredentials getCredentials(DeviceId id) {
80 return restTemplate.getForEntity(baseURL + "/api/device/" + id.getId().toString() + "/credentials", DeviceCredentials.class).getBody(); 87 return restTemplate.getForEntity(baseURL + "/api/device/" + id.getId().toString() + "/credentials", DeviceCredentials.class).getBody();
81 } 88 }
@@ -40,6 +40,8 @@ import java.security.cert.CertificateException; @@ -40,6 +40,8 @@ import java.security.cert.CertificateException;
40 */ 40 */
41 public class MqttTransportServerInitializer extends ChannelInitializer<SocketChannel> { 41 public class MqttTransportServerInitializer extends ChannelInitializer<SocketChannel> {
42 42
  43 + private static final int MAX_PAYLOAD_SIZE = 64 * 1024 * 1024;
  44 +
43 private final SessionMsgProcessor processor; 45 private final SessionMsgProcessor processor;
44 private final DeviceService deviceService; 46 private final DeviceService deviceService;
45 private final DeviceAuthService authService; 47 private final DeviceAuthService authService;
@@ -63,7 +65,7 @@ public class MqttTransportServerInitializer extends ChannelInitializer<SocketCha @@ -63,7 +65,7 @@ public class MqttTransportServerInitializer extends ChannelInitializer<SocketCha
63 sslHandler = sslHandlerProvider.getSslHandler(); 65 sslHandler = sslHandlerProvider.getSslHandler();
64 pipeline.addLast(sslHandler); 66 pipeline.addLast(sslHandler);
65 } 67 }
66 - pipeline.addLast("decoder", new MqttDecoder()); 68 + pipeline.addLast("decoder", new MqttDecoder(MAX_PAYLOAD_SIZE));
67 pipeline.addLast("encoder", MqttEncoder.INSTANCE); 69 pipeline.addLast("encoder", MqttEncoder.INSTANCE);
68 70
69 MqttTransportHandler handler = new MqttTransportHandler(processor, deviceService, authService, adaptor, sslHandler); 71 MqttTransportHandler handler = new MqttTransportHandler(processor, deviceService, authService, adaptor, sslHandler);
@@ -134,7 +134,7 @@ public class GatewaySessionCtx { @@ -134,7 +134,7 @@ public class GatewaySessionCtx {
134 JsonObject jsonObj = json.getAsJsonObject(); 134 JsonObject jsonObj = json.getAsJsonObject();
135 String deviceName = checkDeviceConnected(jsonObj.get("device").getAsString()); 135 String deviceName = checkDeviceConnected(jsonObj.get("device").getAsString());
136 Integer requestId = jsonObj.get("id").getAsInt(); 136 Integer requestId = jsonObj.get("id").getAsInt();
137 - String data = jsonObj.get("data").getAsString(); 137 + String data = jsonObj.get("data").toString();
138 GatewayDeviceSessionCtx deviceSessionCtx = devices.get(deviceName); 138 GatewayDeviceSessionCtx deviceSessionCtx = devices.get(deviceName);
139 processor.process(new BasicToDeviceActorSessionMsg(deviceSessionCtx.getDevice(), 139 processor.process(new BasicToDeviceActorSessionMsg(deviceSessionCtx.getDevice(),
140 new BasicAdaptorToSessionActorMsg(deviceSessionCtx, new ToDeviceRpcResponseMsg(requestId, data)))); 140 new BasicAdaptorToSessionActorMsg(deviceSessionCtx, new ToDeviceRpcResponseMsg(requestId, data))));