thingsboard-developers

Fix for docker deb run

12/1/2016 9:04:59 AM

Details

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
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"
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