public void putCountToCache(String dbCollectionName, Integer count){ countCache.putObject(dbCollectionName, count); } }
@Override public List<Repository> getRepositories(MetadataContext ctx) { MetadataContext context = ctx != null ? ctx : new MetadataContext(); if (!context.isRefreshRepsitory()) { return cache.values(); } ExpirableCache<Repository> newCache = new ExpirableCache<Repository>(maxCacheSize, cacheExpiredTime); BasicDBObject query = new BasicDBObject(); query.put(Repository.STATE_FIELD, Repository.StateEnum.normal.toString()); List<Repository> result = new ArrayList<Repository>(); DBCursor cursor = repoCollection.find(query); while (cursor.hasNext()) { DBObject object = cursor.next(); Repository r = repositoryConverter.fromBson(object, Repository.class); createServiceForRepository(r); result.add(r); newCache.putObject(r.getRepositoryName(), r); } cache = newCache; return result; }
@Test public void cacheTest() { ExpirableCache<String> cache = new ExpirableCache<String>(100, 60); for (String i : c) { cache.putObject(i, i); } for (String i : c) { String o = cache.getObject(i); assertTrue(o == c[Integer.valueOf(o)]); } }
@Test public void expirationTest() throws InterruptedException { ExpirableCache<String> cache = new ExpirableCache<String>(100, 1); cache.putObject(c[0], c[0]); assertTrue(cache.getObject(c[0]) == c[0]); Thread.sleep(2000); assertNull(cache.getObject(c[0])); }
@Test public void deleteTest() { ExpirableCache<String> cache = new ExpirableCache<String>(100, 60); cache.putObject(c[0], c[0]); assertTrue(cache.getObject(c[0]) == c[0]); cache.deleteObject(c[0]); assertNull(cache.getObject(c[0])); }