thingsboard-developers
Changes
application/build.gradle 2(+1 -1)
docker/docker-compose.yml 10(+5 -5)
docker/thingsboard/Dockerfile 6(+3 -3)
docker/thingsboard/run_thingsboard.sh 16(+12 -4)
docker/thingsboard-db-schema.env 0(+0 -0)
Details
application/build.gradle 2(+1 -1)
diff --git a/application/build.gradle b/application/build.gradle
index 833cf4c..8074ea1 100644
--- a/application/build.gradle
+++ b/application/build.gradle
@@ -112,7 +112,7 @@ buildDeb {
archiveName = "${pkgName}.deb"
- requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer")
+ requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless")
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index 7a8f58f..aa7fcc1 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -169,8 +169,17 @@ cache:
# Enable/disable cache functionality.
enabled: "${CACHE_ENABLED:true}"
device_credentials:
- # default time to store device credentials in cache, in seconds
- time_to_live: "${DEVICE_CREDENTIAL_CACHE_TTL:3600}"
- # default maximum size of device credentials cache
- max_size: "${DEVICE_CREDENTIAL_CACHE_MAX_SIZE:1000000}"
+ # Default time to store device credentials in cache, in seconds
+ time_to_live: "${CACHE_DEVICE_CREDENTIAL_TTL:3600}"
+ # Maximum size of the map. When maximum size is reached, the map is evicted based on the policy defined.
+ max_size:
+ # Max size policy options:
+ # PER_NODE: Maximum number of map entries in each JVM.
+ # PER_PARTITION: Maximum number of map entries within each partition.
+ # USED_HEAP_SIZE: Maximum used heap size in megabytes for each JVM.
+ # USED_HEAP_PERCENTAGE: Maximum used heap size percentage for each JVM.
+ # FREE_HEAP_SIZE: Minimum free heap size in megabytes for each JVM.
+ # FREE_HEAP_PERCENTAGE: Minimum free heap size percentage for each JVM.
+ policy: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_POLICY:PER_NODE}"
+ size: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_SIZE:1000000}"
diff --git a/dao/src/main/java/org/thingsboard/server/dao/cache/ServiceCacheConfiguration.java b/dao/src/main/java/org/thingsboard/server/dao/cache/ServiceCacheConfiguration.java
index e45084e..d667f6c 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/cache/ServiceCacheConfiguration.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/cache/ServiceCacheConfiguration.java
@@ -15,10 +15,7 @@
*/
package org.thingsboard.server.dao.cache;
-import com.hazelcast.config.Config;
-import com.hazelcast.config.DiscoveryStrategyConfig;
-import com.hazelcast.config.MapConfig;
-import com.hazelcast.config.MaxSizeConfig;
+import com.hazelcast.config.*;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.instance.GroupProperty;
@@ -41,10 +38,13 @@ public class ServiceCacheConfiguration {
private static final String HAZELCAST_CLUSTER_NAME = "hazelcast";
- @Value("${cache.device_credentials.max_size}")
- private Integer deviceCredentialsCacheMaxSize;
+ @Value("${cache.device_credentials.max_size.size}")
+ private Integer cacheDeviceCredentialsMaxSizeSize;
+ @Value("${cache.device_credentials.max_size.policy}")
+ private String cacheDeviceCredentialsMaxSizePolicy;
@Value("${cache.device_credentials.time_to_live}")
- private Integer deviceCredentialsCacheTTL;
+ private Integer cacheDeviceCredentialsTTL;
+
@Value("${zk.enabled}")
private boolean zkEnabled;
@@ -69,8 +69,13 @@ public class ServiceCacheConfiguration {
}
MapConfig deviceCredentialsCacheConfig = new MapConfig(CacheConstants.DEVICE_CREDENTIALS_CACHE);
- deviceCredentialsCacheConfig.setTimeToLiveSeconds(deviceCredentialsCacheTTL);
- deviceCredentialsCacheConfig.setMaxSizeConfig(new MaxSizeConfig(deviceCredentialsCacheMaxSize, MaxSizeConfig.MaxSizePolicy.PER_NODE));
+ deviceCredentialsCacheConfig.setTimeToLiveSeconds(cacheDeviceCredentialsTTL);
+ deviceCredentialsCacheConfig.setEvictionPolicy(EvictionPolicy.LRU);
+ deviceCredentialsCacheConfig.setMaxSizeConfig(
+ new MaxSizeConfig(
+ cacheDeviceCredentialsMaxSizeSize,
+ MaxSizeConfig.MaxSizePolicy.valueOf(cacheDeviceCredentialsMaxSizePolicy))
+ );
config.addMapConfig(deviceCredentialsCacheConfig);
return Hazelcast.newHazelcastInstance(config);
diff --git a/dao/src/test/resources/application-test.properties b/dao/src/test/resources/application-test.properties
index b526b00..289f946 100644
--- a/dao/src/test/resources/application-test.properties
+++ b/dao/src/test/resources/application-test.properties
@@ -1,6 +1,7 @@
cache.enabled=false
cache.device_credentials.time_to_live=3600
-cache.device_credentials.max_size=1000000
+cache.device_credentials.max_size.size=1000000
+cache.device_credentials.max_size.policy=PER_NODE
zk.enabled=false
zk.url=localhost:2181
docker/docker-compose.yml 10(+5 -5)
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 3dcfb62..65b0aa7 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -26,18 +26,18 @@ services:
links:
- cassandra:db
- zookeeper:zk
- - db-schema:db-schema
+ - thingsboard-db-schema:thingsboard-db-schema
volumes:
- "../application/target/thingsboard.deb:/root/thingsboard.deb"
env_file:
- thingsboard.env
- entrypoint: ./run_web_app.sh
- db-schema:
- build: db-schema
+ entrypoint: ./run_thingsboard.sh
+ thingsboard-db-schema:
+ build: thingsboard-db-schema
links:
- cassandra:db
env_file:
- - db-schema.env
+ - thingsboard-db-schema.env
volumes:
- "../dao/src/main/resources/schema.cql:/root/schema.cql"
- "../dao/src/main/resources/demo-data.cql:/root/demo-data.cql"
docker/thingsboard/Dockerfile 6(+3 -3)
diff --git a/docker/thingsboard/Dockerfile b/docker/thingsboard/Dockerfile
index ee6acd4..c145939 100644
--- a/docker/thingsboard/Dockerfile
+++ b/docker/thingsboard/Dockerfile
@@ -14,10 +14,10 @@
# limitations under the License.
#
-FROM java:8-jre
+FROM openjdk:8-jre
-ADD run_web_app.sh /root/run_web_app.sh
+ADD run_thingsboard.sh /root/run_thingsboard.sh
-RUN chmod +x /root/run_web_app.sh
+RUN chmod +x /root/run_thingsboard.sh
WORKDIR /root