diff --git a/application/pom.xml b/application/pom.xml
index 272097c210..a51ad29672 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
application
diff --git a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java
index 7a3127dd36..dc48e881cd 100644
--- a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java
+++ b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java
@@ -109,11 +109,15 @@ public class TenantActor extends RuleChainManagerActor {
}
private void onServiceToRuleEngineMsg(ServiceToRuleEngineMsg msg) {
+ if (ruleChainManager.getRootChainActor()!=null)
ruleChainManager.getRootChainActor().tell(msg, self());
+ else logger.info("[{}] No Root Chain", msg);
}
private void onDeviceActorToRuleEngineMsg(DeviceActorToRuleEngineMsg msg) {
+ if (ruleChainManager.getRootChainActor()!=null)
ruleChainManager.getRootChainActor().tell(msg, self());
+ else logger.info("[{}] No Root Chain", msg);
}
private void onRuleChainMsg(RuleChainToRuleChainMsg msg) {
diff --git a/application/src/main/scripts/windows/service.xml b/application/src/main/scripts/windows/service.xml
index 6590f42424..2cc46a7e91 100644
--- a/application/src/main/scripts/windows/service.xml
+++ b/application/src/main/scripts/windows/service.xml
@@ -10,6 +10,32 @@
java
-Dplatform=windows
-Dinstall.data_dir=%BASE%\data
+ -Xloggc:%BASE%\logs\gc.log
+ -XX:+HeapDumpOnOutOfMemoryError
+ -XX:+PrintGCDetails
+ -XX:+PrintGCDateStamps
+ -XX:+PrintHeapAtGC
+ -XX:+PrintTenuringDistribution
+ -XX:+PrintGCApplicationStoppedTime
+ -XX:+UseGCLogFileRotation
+ -XX:NumberOfGCLogFiles=10
+ -XX:GCLogFileSize=10M
+ -XX:-UseBiasedLocking
+ -XX:+UseTLAB
+ -XX:+ResizeTLAB
+ -XX:+PerfDisableSharedMem
+ -XX:+UseCondCardMark
+ -XX:CMSWaitDuration=10000
+ -XX:+UseParNewGC
+ -XX:+UseConcMarkSweepGC
+ -XX:+CMSParallelRemarkEnabled
+ -XX:+CMSParallelInitialMarkEnabled
+ -XX:+CMSEdenChunksRecordAlways
+ -XX:CMSInitiatingOccupancyFraction=75
+ -XX:+UseCMSInitiatingOccupancyOnly
+ -Xms512m
+ -Xmx1024m
-jar
%BASE%\lib\${pkg.name}.jar
+
diff --git a/common/data/pom.xml b/common/data/pom.xml
index 2f40b35e7d..4fabbb6a02 100644
--- a/common/data/pom.xml
+++ b/common/data/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/message/pom.xml b/common/message/pom.xml
index 26f73f5787..0c3045bc47 100644
--- a/common/message/pom.xml
+++ b/common/message/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/pom.xml b/common/pom.xml
index 75bbb50755..b8020bb3f5 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
org.thingsboard
diff --git a/common/transport/pom.xml b/common/transport/pom.xml
index 0ab2d9b744..f7595078b5 100644
--- a/common/transport/pom.xml
+++ b/common/transport/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
common
org.thingsboard.common
diff --git a/dao/pom.xml b/dao/pom.xml
index dad607af78..51469f5c43 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
dao
diff --git a/netty-mqtt/pom.xml b/netty-mqtt/pom.xml
index 029ef59c85..f4607a4e39 100644
--- a/netty-mqtt/pom.xml
+++ b/netty-mqtt/pom.xml
@@ -19,12 +19,12 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
org.thingsboard
netty-mqtt
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
jar
Netty MQTT Client
diff --git a/pom.xml b/pom.xml
index 83d353d15b..f18e7f9c40 100755
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
pom
Thingsboard
diff --git a/rule-engine/pom.xml b/rule-engine/pom.xml
index 02247614fb..dccf16e03e 100644
--- a/rule-engine/pom.xml
+++ b/rule-engine/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
rule-engine
diff --git a/rule-engine/rule-engine-api/pom.xml b/rule-engine/rule-engine-api/pom.xml
index 633a8ad5e2..182c98c234 100644
--- a/rule-engine/rule-engine-api/pom.xml
+++ b/rule-engine/rule-engine-api/pom.xml
@@ -22,7 +22,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
rule-engine
org.thingsboard.rule-engine
diff --git a/rule-engine/rule-engine-components/pom.xml b/rule-engine/rule-engine-components/pom.xml
index 0798f46403..4071cdc0c1 100644
--- a/rule-engine/rule-engine-components/pom.xml
+++ b/rule-engine/rule-engine-components/pom.xml
@@ -22,7 +22,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
rule-engine
org.thingsboard.rule-engine
diff --git a/tools/pom.xml b/tools/pom.xml
index 5c52532de1..8b5bfc5cd6 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
org.thingsboard
diff --git a/transport/coap/pom.xml b/transport/coap/pom.xml
index bf04267931..63abab21bc 100644
--- a/transport/coap/pom.xml
+++ b/transport/coap/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
transport
org.thingsboard.transport
diff --git a/transport/http/pom.xml b/transport/http/pom.xml
index 77f77284eb..54e89d51ac 100644
--- a/transport/http/pom.xml
+++ b/transport/http/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
transport
org.thingsboard.transport
diff --git a/transport/mqtt/pom.xml b/transport/mqtt/pom.xml
index c7004cfc90..5c3795c98e 100644
--- a/transport/mqtt/pom.xml
+++ b/transport/mqtt/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
transport
org.thingsboard.transport
diff --git a/transport/pom.xml b/transport/pom.xml
index 8bcff2bc18..0ae885bbf7 100644
--- a/transport/pom.xml
+++ b/transport/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
org.thingsboard
diff --git a/ui/package.json b/ui/package.json
index 83bca57b60..892664faec 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -1,7 +1,7 @@
{
"name": "thingsboard",
"private": true,
- "version": "2.0.2",
+ "version": "2.0.4",
"description": "Thingsboard UI",
"licenses": [
{
diff --git a/ui/pom.xml b/ui/pom.xml
index a5d2a2e07f..ecb71dee7e 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 2.0.3-SNAPSHOT
+ 2.0.4-SNAPSHOT
thingsboard
org.thingsboard
diff --git a/ui/src/app/api/alias-controller.js b/ui/src/app/api/alias-controller.js
index 10b110743f..66781a8dbb 100644
--- a/ui/src/app/api/alias-controller.js
+++ b/ui/src/app/api/alias-controller.js
@@ -146,6 +146,7 @@ export default class AliasController {
newDatasource.entityId = resolvedEntity.id;
newDatasource.entityType = resolvedEntity.entityType;
newDatasource.entityName = resolvedEntity.name;
+ newDatasource.entityDescription = resolvedEntity.entityDescription
newDatasource.name = resolvedEntity.name;
newDatasource.generated = i > 0 ? true : false;
datasources.push(newDatasource);
@@ -167,6 +168,7 @@ export default class AliasController {
datasource.entityType = entity.entityType;
datasource.entityName = entity.name;
datasource.name = entity.name;
+ datasource.entityDescription = entity.entityDescription;
deferred.resolve([datasource]);
} else {
if (aliasInfo.stateEntity) {
diff --git a/ui/src/app/api/entity.service.js b/ui/src/app/api/entity.service.js
index 762bf1aba3..2e29238dfe 100644
--- a/ui/src/app/api/entity.service.js
+++ b/ui/src/app/api/entity.service.js
@@ -329,7 +329,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
}
function entityToEntityInfo(entity) {
- return { name: entity.name, entityType: entity.id.entityType, id: entity.id.id };
+ return { name: entity.name, entityType: entity.id.entityType, id: entity.id.id, entityDescription: entity.additionalInfo?entity.additionalInfo.description:"" };
}
function entityRelationInfoToEntityInfo(entityRelationInfo, direction) {
diff --git a/ui/src/app/components/datasource-entity.tpl.html b/ui/src/app/components/datasource-entity.tpl.html
index 484164f838..db6fd3be96 100644
--- a/ui/src/app/components/datasource-entity.tpl.html
+++ b/ui/src/app/components/datasource-entity.tpl.html
@@ -60,7 +60,7 @@
-
+
{{$chip.label}}
@@ -112,7 +112,7 @@
-
+
{{$chip.label}}
@@ -164,7 +164,7 @@
-
+
{{$chip.label}}
diff --git a/ui/src/app/components/datasource-func.tpl.html b/ui/src/app/components/datasource-func.tpl.html
index 134dcd7552..6bf49ba8f7 100644
--- a/ui/src/app/components/datasource-func.tpl.html
+++ b/ui/src/app/components/datasource-func.tpl.html
@@ -61,7 +61,7 @@
-
+
{{$chip.label}}
@@ -112,7 +112,7 @@
-
+
{{$chip.label}}
diff --git a/ui/src/app/components/details-sidenav.scss b/ui/src/app/components/details-sidenav.scss
index 360b1330e4..c7e991912b 100644
--- a/ui/src/app/components/details-sidenav.scss
+++ b/ui/src/app/components/details-sidenav.scss
@@ -59,14 +59,4 @@ md-sidenav.tb-sidenav-details {
background-color: $primary-hue-3;
}
}
-
- md-tab-content.md-active > div {
- height: 100%;
- & > *:first-child {
- height: 100%;
- }
- md-content {
- height: 100%;
- }
- }
}
diff --git a/ui/src/app/components/widget/widget-config.tpl.html b/ui/src/app/components/widget/widget-config.tpl.html
index ce796d4210..e8762bdeeb 100644
--- a/ui/src/app/components/widget/widget-config.tpl.html
+++ b/ui/src/app/components/widget/widget-config.tpl.html
@@ -187,17 +187,17 @@
- {{ 'widget-config.display-title' | translate }}
- {{ 'widget-config.drop-shadow' | translate }}
- {{ 'widget-config.enable-fullscreen' | translate }}
diff --git a/ui/src/app/device/device-card.tpl.html b/ui/src/app/device/device-card.tpl.html
index 522f1ab376..de8b7eebc4 100644
--- a/ui/src/app/device/device-card.tpl.html
+++ b/ui/src/app/device/device-card.tpl.html
@@ -16,7 +16,8 @@
-->
-
{{vm.item.type}}
+
{{vm.item.additionalInfo.description}}
+
{{vm.item.type}}
{{'device.assignedToCustomer' | translate}} '{{vm.item.assignedCustomer.title}}'
{{'device.public' | translate}}
diff --git a/ui/src/app/widget/lib/CanvasDigitalGauge.js b/ui/src/app/widget/lib/CanvasDigitalGauge.js
index 0166e913c1..ee8b0ed559 100644
--- a/ui/src/app/widget/lib/CanvasDigitalGauge.js
+++ b/ui/src/app/widget/lib/CanvasDigitalGauge.js
@@ -204,8 +204,13 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
}
var valueChanged = false;
-
- if (!this.elementValueClone.initialized || this.elementValueClone.renderedValue !== this.value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) {
+ if (!this.elementValueClone.initialized || angular.isDefined(this._value) && this.elementValueClone.renderedValue !== this._value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) {
+ if (angular.isDefined(this._value)) {
+ this.elementValueClone.renderedValue = this._value;
+ }
+ if (angular.isUndefined(this.elementValueClone.renderedValue)) {
+ this.elementValueClone.renderedValue = options.minValue;
+ }
let context = this.contextValueClone;
// clear the cache
context.clearRect(x, y, w, h);
@@ -214,7 +219,7 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
context.drawImage(canvas.elementClone, x, y, w, h);
context.save();
- drawDigitalValue(context, options, this.value);
+ drawDigitalValue(context, options, this.elementValueClone.renderedValue);
if (options.showTimestamp) {
drawDigitalLabel(context, options);
@@ -222,7 +227,6 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
}
this.elementValueClone.initialized = true;
- this.elementValueClone.renderedValue = this.value;
valueChanged = true;
}
diff --git a/ui/src/app/widget/lib/canvas-digital-gauge.js b/ui/src/app/widget/lib/canvas-digital-gauge.js
index 8e6db0468e..283a42676b 100644
--- a/ui/src/app/widget/lib/canvas-digital-gauge.js
+++ b/ui/src/app/widget/lib/canvas-digital-gauge.js
@@ -70,6 +70,10 @@ export default class TbCanvasDigitalGauge {
(settings.title && settings.title.length > 0 ?
settings.title : dataKey.label) : '');
+ if (!this.localSettings.unitTitle && this.localSettings.showTimestamp) {
+ this.localSettings.unitTitle = ' ';
+ }
+
this.localSettings.titleFont = {};
var settingsTitleFont = settings.titleFont;
if (!settingsTitleFont) {
@@ -206,6 +210,7 @@ export default class TbCanvasDigitalGauge {
var value = tvPair[1];
if(value !== this.gauge.value) {
this.gauge.value = value;
+ this.gauge._value = value;
} else if (this.localSettings.showTimestamp && this.gauge.timestamp != timestamp) {
this.gauge.timestamp = timestamp;
}