Skip to content

Releases: fewlaps/quitnow-cache

v3.4.1

Choose a tag to compare

@EsteveAguilera EsteveAguilera released this 19 Sep 10:08

Move to Kotlin!

Choose a tag to compare

@rocboronat rocboronat released this 28 Oct 15:02

By the way, I did some performance tests and times are the same. That's not surprising, but hey, good to know and better to share.

Created a sexier Builder

Choose a tag to compare

@rocboronat rocboronat released this 26 Oct 14:15

You'll find it as QNCache.Builder(). It looks sexier than QNCacheBuilder(), who is now deprecated.

Shutdown the cache and stop the autoreleaser thread

Choose a tag to compare

@rocboronat rocboronat released this 26 Sep 15:04

Added a way to stop the autoreleaser thread if it was started previously.

After some months (years?) on our production environment, we saw that every time we released a new version of our server application, the old one was not fully stopped. The issue was related with the Autoreleaser Thread of this cache, that was running on background. As it was active, the Servlet container let it run forever in background. And that is not as elegant as we want 🎩We want to kill those old versions of the app that were using our precious resources!

So, if you run this cache on a long life application, you could be interested in stopping it at some point. To do it, just call the new method cache.shutdown(). In J2EE environments, ServletContextListener.contextDestroyed() is the place to do it.

By the way, if you run it on Android, you have two ways to manage it:
1. Just keep the autoreleaser thread alive forever. Android will kill your app at some point, so ignore it.
2. If you love elegance 🎩as us, you have to bother about it only if you store big objects on the cache. If you do that, you should build the cache with the autoreleaser to successfully free the memory of the dead objects from time to time. And, if you use the autoreleaser, it would be good that you shut down the cache as soon as you think that those cached objects are not going to be used anymore. By the way, if your objects are needed during all the application life, ignore all the explained: as in the point 1., Android will kill your app when it needs to do it, so let's ignore all the explained in this long release readme.

"That's all folks!"

Add getOrDefault(key, defaultValue) to the API

Choose a tag to compare

@rocboronat rocboronat released this 28 Jul 02:48

Let's mimic Java 8 getOrDefault() method. Users really missed it when using the cache, so it was time to fix it. Thanks for the patience!

Adding lots of methods to the API

Choose a tag to compare

@rocboronat rocboronat released this 27 Dec 17:32

They are useful to get the Keys

listCachedKeysStartingWith(String)
listCachedKeysStartingWithIfAlive(String)

Thanks to @juanet3 for #28!

.clear() instead of .replaceAll()

Choose a tag to compare

@rocboronat rocboronat released this 04 Jul 19:33

Welcome to common clear() method! We don't know why we had not chosen that name. Sorry 'bout that! 👍 😄

TimeUnit working also on Java 6!

Choose a tag to compare

@rocboronat rocboronat released this 07 Jun 23:08

This is the happy version that includes the TimeUnit powered methods also on Java 6. So, you wouldn't need to remember where to pass millis, where to pass seconds... you can also work with HOURS without doing the usual 42*1000*60*60 Incredible!

Adding TimeUnit-powered methods

Pre-release

Choose a tag to compare

@rocboronat rocboronat released this 07 Jun 23:04

... but the library only works on Java 8. Ignore this release and go on with 1.6.1 :·)

Welcome generics and happy new year 2016!

Choose a tag to compare

@rocboronat rocboronat released this 31 Dec 18:18

Thanks to @padilo, the QNCache is now typesafe! So you can create it like:

QNCache<String> stringCache = new QNCacheBuilder().createQNCache();