Merge pull request #968 from sameeragunarathne/master

fixes https://github.com/wso2/product-iots/issues/1417
4.x.x
Harshan Liyanage 7 years ago committed by GitHub
commit 455f56405b

@ -26,6 +26,7 @@ public class DeviceCacheConfiguration {
private boolean isEnabled; private boolean isEnabled;
private int expiryTime; private int expiryTime;
private long capacity;
@XmlElement(name = "Enable", required = true) @XmlElement(name = "Enable", required = true)
public boolean isEnabled() { public boolean isEnabled() {
@ -44,4 +45,13 @@ public class DeviceCacheConfiguration {
public void setExpiryTime(int expiryTime) { public void setExpiryTime(int expiryTime) {
this.expiryTime = expiryTime; this.expiryTime = expiryTime;
} }
@XmlElement(name = "Capacity", required = true)
public long getCapacity() {
return capacity;
}
public void setCapacity(long capacity) {
this.capacity = capacity;
}
} }

@ -21,6 +21,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.wso2.carbon.base.MultitenantConstants; import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.caching.impl.CacheImpl;
import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService; import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService;
import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.Device;
@ -492,6 +493,7 @@ public final class DeviceManagerUtil {
public static void initializeDeviceCache() { public static void initializeDeviceCache() {
DeviceManagementConfig config = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(); DeviceManagementConfig config = DeviceConfigurationManager.getInstance().getDeviceManagementConfig();
int deviceCacheExpiry = config.getDeviceCacheConfiguration().getExpiryTime(); int deviceCacheExpiry = config.getDeviceCacheConfiguration().getExpiryTime();
long deviceCacheCapacity = config.getDeviceCacheConfiguration().getCapacity();
CacheManager manager = getCacheManager(); CacheManager manager = getCacheManager();
if (config.getDeviceCacheConfiguration().isEnabled()) { if (config.getDeviceCacheConfiguration().isEnabled()) {
if(!isDeviceCacheInitialized) { if(!isDeviceCacheInitialized) {
@ -502,6 +504,10 @@ public final class DeviceManagerUtil {
setExpiry(CacheConfiguration.ExpiryType.MODIFIED, new CacheConfiguration.Duration(TimeUnit.SECONDS, setExpiry(CacheConfiguration.ExpiryType.MODIFIED, new CacheConfiguration.Duration(TimeUnit.SECONDS,
deviceCacheExpiry)).setExpiry(CacheConfiguration.ExpiryType.ACCESSED, new CacheConfiguration. deviceCacheExpiry)).setExpiry(CacheConfiguration.ExpiryType.ACCESSED, new CacheConfiguration.
Duration(TimeUnit.SECONDS, deviceCacheExpiry)).setStoreByValue(true).build(); Duration(TimeUnit.SECONDS, deviceCacheExpiry)).setStoreByValue(true).build();
if(deviceCacheCapacity > 0 ) {
((CacheImpl)(manager.<DeviceCacheKey, Device>getCache(DeviceManagementConstants.DEVICE_CACHE))).
setCapacity(deviceCacheCapacity);
}
} else { } else {
manager.<DeviceCacheKey, Device>getCache(DeviceManagementConstants.DEVICE_CACHE); manager.<DeviceCacheKey, Device>getCache(DeviceManagementConstants.DEVICE_CACHE);
} }
@ -512,6 +518,8 @@ public final class DeviceManagerUtil {
setExpiry(CacheConfiguration.ExpiryType.MODIFIED, new CacheConfiguration.Duration(TimeUnit.SECONDS, setExpiry(CacheConfiguration.ExpiryType.MODIFIED, new CacheConfiguration.Duration(TimeUnit.SECONDS,
deviceCacheExpiry)).setExpiry(CacheConfiguration.ExpiryType.ACCESSED, new CacheConfiguration. deviceCacheExpiry)).setExpiry(CacheConfiguration.ExpiryType.ACCESSED, new CacheConfiguration.
Duration(TimeUnit.SECONDS, deviceCacheExpiry)).setStoreByValue(true).build(); Duration(TimeUnit.SECONDS, deviceCacheExpiry)).setStoreByValue(true).build();
((CacheImpl)(manager.<DeviceCacheKey, Device>getCache(DeviceManagementConstants.DEVICE_CACHE))).
setCapacity(deviceCacheCapacity);
} else { } else {
Caching.getCacheManager().<DeviceCacheKey, Device>getCache(DeviceManagementConstants.DEVICE_CACHE); Caching.getCacheManager().<DeviceCacheKey, Device>getCache(DeviceManagementConstants.DEVICE_CACHE);
} }

@ -77,6 +77,7 @@
<DeviceCacheConfiguration> <DeviceCacheConfiguration>
<Enable>true</Enable> <Enable>true</Enable>
<ExpiryTime>600</ExpiryTime> <ExpiryTime>600</ExpiryTime>
<Capacity>10000</Capacity>
</DeviceCacheConfiguration> </DeviceCacheConfiguration>
<CertificateCacheConfiguration> <CertificateCacheConfiguration>
<Enable>true</Enable> <Enable>true</Enable>

@ -9,6 +9,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE (
)ENGINE = InnoDB; )ENGINE = InnoDB;
CREATE INDEX IDX_DEVICE_TYPE ON DM_DEVICE_TYPE (NAME, PROVIDER_TENANT_ID); CREATE INDEX IDX_DEVICE_TYPE ON DM_DEVICE_TYPE (NAME, PROVIDER_TENANT_ID);
CREATE INDEX IDX_DEVICE_NAME ON DM_DEVICE_TYPE (NAME);
CREATE INDEX IDX_DEVICE_TYPE_DEVICE_NAME ON DM_DEVICE_TYPE(ID, NAME);
CREATE TABLE IF NOT EXISTS DM_GROUP ( CREATE TABLE IF NOT EXISTS DM_GROUP (
ID INTEGER AUTO_INCREMENT NOT NULL, ID INTEGER AUTO_INCREMENT NOT NULL,

Loading…
Cancel
Save