APEXMALHAR-2535: change type of timeout variables from int to long
Fix NPE during teardown, when refreshtime is not set
Allow setting expiration type
diff --git a/contrib/src/main/java/com/datatorrent/contrib/enrich/AbstractEnricher.java b/contrib/src/main/java/com/datatorrent/contrib/enrich/AbstractEnricher.java
index de9e2c7..c377b96 100644
--- a/contrib/src/main/java/com/datatorrent/contrib/enrich/AbstractEnricher.java
+++ b/contrib/src/main/java/com/datatorrent/contrib/enrich/AbstractEnricher.java
@@ -25,11 +25,13 @@
import org.apache.hadoop.classification.InterfaceStability;
import com.esotericsoftware.kryo.NotNull;
+
import com.datatorrent.api.Context;
import com.datatorrent.api.Operator;
import com.datatorrent.common.util.BaseOperator;
import com.datatorrent.lib.db.cache.CacheManager;
import com.datatorrent.lib.db.cache.CacheStore;
+import com.datatorrent.lib.db.cache.CacheStore.ExpiryType;
import com.datatorrent.lib.util.FieldInfo;
import com.datatorrent.lib.util.FieldInfo.SupportType;
@@ -66,8 +68,9 @@
/**
* Optional parameters for enricher.
*/
- private int cacheExpirationInterval = 1 * 60 * 60 * 1000; // 1 hour
- private int cacheCleanupInterval = 1 * 60 * 60 * 1000; // 1 hour
+ private long cacheExpirationInterval = 1 * 60 * 60 * 1000; // 1 hour
+ private long cacheCleanupInterval = 1 * 60 * 60 * 1000; // 1 hour
+ private ExpiryType expiryType = ExpiryType.EXPIRE_AFTER_WRITE;
private int cacheSize = 1024; // 1024 records
/**
@@ -160,7 +163,7 @@
// set expiration to one day.
primaryCache.setEntryExpiryDurationInMillis(cacheExpirationInterval);
primaryCache.setCacheCleanupInMillis(cacheCleanupInterval);
- primaryCache.setEntryExpiryStrategy(CacheStore.ExpiryType.EXPIRE_AFTER_WRITE);
+ primaryCache.setEntryExpiryStrategy(expiryType);
primaryCache.setMaxCacheSize(cacheSize);
cacheManager.setPrimary(primaryCache);
@@ -268,7 +271,7 @@
*
* @return Cache entry expiration interval in ms
*/
- public int getCacheExpirationInterval()
+ public long getCacheExpirationInterval()
{
return cacheExpirationInterval;
}
@@ -279,7 +282,7 @@
*
* @param cacheExpirationInterval Cache entry expiration interval in ms
*/
- public void setCacheExpirationInterval(int cacheExpirationInterval)
+ public void setCacheExpirationInterval(long cacheExpirationInterval)
{
this.cacheExpirationInterval = cacheExpirationInterval;
}
@@ -290,7 +293,7 @@
*
* @return cache cleanup interval in ms.
*/
- public int getCacheCleanupInterval()
+ public long getCacheCleanupInterval()
{
return cacheCleanupInterval;
}
@@ -301,7 +304,7 @@
*
* @param cacheCleanupInterval cache cleanup interval in ms.
*/
- public void setCacheCleanupInterval(int cacheCleanupInterval)
+ public void setCacheCleanupInterval(long cacheCleanupInterval)
{
this.cacheCleanupInterval = cacheCleanupInterval;
}
@@ -326,6 +329,16 @@
this.cacheSize = cacheSize;
}
+ public ExpiryType getExpiryType()
+ {
+ return expiryType;
+ }
+
+ public void setExpiryType(ExpiryType expiryType)
+ {
+ this.expiryType = expiryType;
+ }
+
public CacheManager getCacheManager()
{
return cacheManager;
diff --git a/library/src/main/java/com/datatorrent/lib/db/cache/CacheStore.java b/library/src/main/java/com/datatorrent/lib/db/cache/CacheStore.java
index 1b43085..c073aff 100644
--- a/library/src/main/java/com/datatorrent/lib/db/cache/CacheStore.java
+++ b/library/src/main/java/com/datatorrent/lib/db/cache/CacheStore.java
@@ -58,10 +58,10 @@
protected long maxCacheSize = 2000;
@Min(0)
- protected int entryExpiryDurationInMillis = 60000; //1 minute
+ protected long entryExpiryDurationInMillis = 60000; //1 minute
@Min(0)
- protected int cacheCleanupIntervalInMillis = 60500; //.5 seconds after entries are expired
+ protected long cacheCleanupIntervalInMillis = 60500; //.5 seconds after entries are expired
@NotNull
protected ExpiryType entryExpiryStrategy = ExpiryType.EXPIRE_AFTER_ACCESS;
@@ -190,7 +190,7 @@
*
* @param durationInMillis the duration after which a cache entry is expired.
*/
- public void setEntryExpiryDurationInMillis(int durationInMillis)
+ public void setEntryExpiryDurationInMillis(long durationInMillis)
{
this.entryExpiryDurationInMillis = durationInMillis;
}
@@ -200,7 +200,7 @@
*
* @param durationInMillis the duration after which cache is cleaned up regularly.
*/
- public void setCacheCleanupInMillis(int durationInMillis)
+ public void setCacheCleanupInMillis(long durationInMillis)
{
this.cacheCleanupIntervalInMillis = durationInMillis;
}