+ Computation<AuthorizationService> computation = new Computation<AuthorizationService>() {
+ @Override
+ public boolean isOutOfDate() {
+ long time = System.currentTimeMillis();
+ return service.getCached() == null ||
+ (time - lastRefreshTime) > refreshInterval;
+ }
+
+ @Override
+ public AuthorizationService compute() {
+ AuthorizationService svc = refreshByReload();
+ lastRefreshTime = System.currentTimeMillis();
+ return svc;
+ }
+ };
+ service = new ComputedValue<AuthorizationService>(this, computation);