Showing
10 changed files
with
50 additions
and
27 deletions
... | ... | @@ -112,7 +112,7 @@ buildDeb { |
112 | 112 | |
113 | 113 | archiveName = "${pkgName}.deb" |
114 | 114 | |
115 | - requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer") | |
115 | + requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless") | |
116 | 116 | |
117 | 117 | configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf") |
118 | 118 | configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml") | ... | ... |
... | ... | @@ -169,8 +169,17 @@ cache: |
169 | 169 | # Enable/disable cache functionality. |
170 | 170 | enabled: "${CACHE_ENABLED:true}" |
171 | 171 | device_credentials: |
172 | - # default time to store device credentials in cache, in seconds | |
173 | - time_to_live: "${DEVICE_CREDENTIAL_CACHE_TTL:3600}" | |
174 | - # default maximum size of device credentials cache | |
175 | - max_size: "${DEVICE_CREDENTIAL_CACHE_MAX_SIZE:1000000}" | |
172 | + # Default time to store device credentials in cache, in seconds | |
173 | + time_to_live: "${CACHE_DEVICE_CREDENTIAL_TTL:3600}" | |
174 | + # Maximum size of the map. When maximum size is reached, the map is evicted based on the policy defined. | |
175 | + max_size: | |
176 | + # Max size policy options: | |
177 | + # PER_NODE: Maximum number of map entries in each JVM. | |
178 | + # PER_PARTITION: Maximum number of map entries within each partition. | |
179 | + # USED_HEAP_SIZE: Maximum used heap size in megabytes for each JVM. | |
180 | + # USED_HEAP_PERCENTAGE: Maximum used heap size percentage for each JVM. | |
181 | + # FREE_HEAP_SIZE: Minimum free heap size in megabytes for each JVM. | |
182 | + # FREE_HEAP_PERCENTAGE: Minimum free heap size percentage for each JVM. | |
183 | + policy: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_POLICY:PER_NODE}" | |
184 | + size: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_SIZE:1000000}" | |
176 | 185 | ... | ... |
... | ... | @@ -15,10 +15,7 @@ |
15 | 15 | */ |
16 | 16 | package org.thingsboard.server.dao.cache; |
17 | 17 | |
18 | -import com.hazelcast.config.Config; | |
19 | -import com.hazelcast.config.DiscoveryStrategyConfig; | |
20 | -import com.hazelcast.config.MapConfig; | |
21 | -import com.hazelcast.config.MaxSizeConfig; | |
18 | +import com.hazelcast.config.*; | |
22 | 19 | import com.hazelcast.core.Hazelcast; |
23 | 20 | import com.hazelcast.core.HazelcastInstance; |
24 | 21 | import com.hazelcast.instance.GroupProperty; |
... | ... | @@ -41,10 +38,13 @@ public class ServiceCacheConfiguration { |
41 | 38 | |
42 | 39 | private static final String HAZELCAST_CLUSTER_NAME = "hazelcast"; |
43 | 40 | |
44 | - @Value("${cache.device_credentials.max_size}") | |
45 | - private Integer deviceCredentialsCacheMaxSize; | |
41 | + @Value("${cache.device_credentials.max_size.size}") | |
42 | + private Integer cacheDeviceCredentialsMaxSizeSize; | |
43 | + @Value("${cache.device_credentials.max_size.policy}") | |
44 | + private String cacheDeviceCredentialsMaxSizePolicy; | |
46 | 45 | @Value("${cache.device_credentials.time_to_live}") |
47 | - private Integer deviceCredentialsCacheTTL; | |
46 | + private Integer cacheDeviceCredentialsTTL; | |
47 | + | |
48 | 48 | |
49 | 49 | @Value("${zk.enabled}") |
50 | 50 | private boolean zkEnabled; |
... | ... | @@ -69,8 +69,13 @@ public class ServiceCacheConfiguration { |
69 | 69 | } |
70 | 70 | |
71 | 71 | MapConfig deviceCredentialsCacheConfig = new MapConfig(CacheConstants.DEVICE_CREDENTIALS_CACHE); |
72 | - deviceCredentialsCacheConfig.setTimeToLiveSeconds(deviceCredentialsCacheTTL); | |
73 | - deviceCredentialsCacheConfig.setMaxSizeConfig(new MaxSizeConfig(deviceCredentialsCacheMaxSize, MaxSizeConfig.MaxSizePolicy.PER_NODE)); | |
72 | + deviceCredentialsCacheConfig.setTimeToLiveSeconds(cacheDeviceCredentialsTTL); | |
73 | + deviceCredentialsCacheConfig.setEvictionPolicy(EvictionPolicy.LRU); | |
74 | + deviceCredentialsCacheConfig.setMaxSizeConfig( | |
75 | + new MaxSizeConfig( | |
76 | + cacheDeviceCredentialsMaxSizeSize, | |
77 | + MaxSizeConfig.MaxSizePolicy.valueOf(cacheDeviceCredentialsMaxSizePolicy)) | |
78 | + ); | |
74 | 79 | config.addMapConfig(deviceCredentialsCacheConfig); |
75 | 80 | |
76 | 81 | return Hazelcast.newHazelcastInstance(config); | ... | ... |
... | ... | @@ -26,18 +26,18 @@ services: |
26 | 26 | links: |
27 | 27 | - cassandra:db |
28 | 28 | - zookeeper:zk |
29 | - - db-schema:db-schema | |
29 | + - thingsboard-db-schema:thingsboard-db-schema | |
30 | 30 | volumes: |
31 | 31 | - "../application/target/thingsboard.deb:/root/thingsboard.deb" |
32 | 32 | env_file: |
33 | 33 | - thingsboard.env |
34 | - entrypoint: ./run_web_app.sh | |
35 | - db-schema: | |
36 | - build: db-schema | |
34 | + entrypoint: ./run_thingsboard.sh | |
35 | + thingsboard-db-schema: | |
36 | + build: thingsboard-db-schema | |
37 | 37 | links: |
38 | 38 | - cassandra:db |
39 | 39 | env_file: |
40 | - - db-schema.env | |
40 | + - thingsboard-db-schema.env | |
41 | 41 | volumes: |
42 | 42 | - "../dao/src/main/resources/schema.cql:/root/schema.cql" |
43 | 43 | - "../dao/src/main/resources/demo-data.cql:/root/demo-data.cql" | ... | ... |
docker/thingsboard-db-schema.env
renamed from
docker/db-schema.env
docker/thingsboard-db-schema/Dockerfile
renamed from
docker/db-schema/Dockerfile
docker/thingsboard-db-schema/install_schema.sh
renamed from
docker/db-schema/install_schema.sh
... | ... | @@ -14,10 +14,10 @@ |
14 | 14 | # limitations under the License. |
15 | 15 | # |
16 | 16 | |
17 | -FROM java:8-jre | |
17 | +FROM openjdk:8-jre | |
18 | 18 | |
19 | -ADD run_web_app.sh /root/run_web_app.sh | |
19 | +ADD run_thingsboard.sh /root/run_thingsboard.sh | |
20 | 20 | |
21 | -RUN chmod +x /root/run_web_app.sh | |
21 | +RUN chmod +x /root/run_thingsboard.sh | |
22 | 22 | |
23 | 23 | WORKDIR /root | ... | ... |
docker/thingsboard/run_thingsboard.sh
renamed from
docker/thingsboard/run_web_app.sh
... | ... | @@ -21,16 +21,24 @@ dpkg -i /root/thingsboard.deb |
21 | 21 | reachable=0 |
22 | 22 | while [ $reachable -eq 0 ]; |
23 | 23 | do |
24 | - echo "db-schema container is still in progress. waiting until it completed..." | |
24 | + echo "thingsboard-db-schema container is still in progress. waiting until it completed..." | |
25 | 25 | sleep 3 |
26 | - ping -q -c 1 db-schema > /dev/null 2>&1 | |
26 | + ping -q -c 1 thingsboard-db-schema > /dev/null 2>&1 | |
27 | 27 | if [ "$?" -ne 0 ]; |
28 | 28 | then |
29 | - echo "db-schema container completed!" | |
29 | + echo "thingsboard-db-schema container completed!" | |
30 | 30 | reachable=1 |
31 | 31 | fi |
32 | 32 | done |
33 | 33 | |
34 | +# Copying env variables into conf files | |
35 | +printenv | while read x; do echo export $x; done >> /usr/share/thingsboard/conf/thingsboard.conf | |
36 | + | |
37 | +cat /usr/share/thingsboard/conf/thingsboard.conf | |
38 | + | |
34 | 39 | echo "Starting 'Thingsboard' service..." |
35 | -thingsboard start | |
40 | +service thingsboard start | |
36 | 41 | |
42 | +# Wait until log file is created | |
43 | +sleep 3 | |
44 | +tail -f /var/log/thingsboard/thingsboard.log | ... | ... |