Skip to content

Commit 6c4b4bc

Browse files
authored
Merge pull request #31795 from geoand/cache-polish
Apply small polish to cache code
2 parents 24fc08c + 7e46bef commit 6c4b4bc

File tree

3 files changed

+32
-20
lines changed

3 files changed

+32
-20
lines changed

docs/src/main/asciidoc/cache.adoc

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -539,19 +539,22 @@ Another way to retrieve a `Cache` instance consists in injecting the `io.quarkus
539539
----
540540
package org.acme.cache;
541541
542-
import jakarta.enterprise.context.ApplicationScoped;
543542
import jakarta.inject.Inject;
543+
import jakarta.inject.Singleton;
544544
545545
import io.quarkus.cache.Cache;
546546
import io.quarkus.cache.CacheManager;
547547
548548
import java.util.Optional;
549549
550-
@ApplicationScoped
550+
@Singleton
551551
public class CacheClearer {
552552
553-
@Inject
554-
CacheManager cacheManager;
553+
private final CacheManager cacheManager;
554+
555+
public CacheClearer(CacheManager cacheManager) {
556+
this.cacheManager = cacheManager;
557+
}
555558
556559
public void clearCache(String cacheName) {
557560
Optional<Cache> cache = cacheManager.getCache(cacheName);
@@ -668,21 +671,24 @@ Similarly, the maximum size of a `CaffeineCache` can be changed in real time if
668671
----
669672
package org.acme.cache;
670673
671-
import jakarta.enterprise.context.ApplicationScoped;
672674
import jakarta.inject.Inject;
675+
import jakarta.inject.Singleton;
673676
674677
import io.quarkus.cache.Cache;
675678
import io.quarkus.cache.CacheManager;
676679
import io.quarkus.cache.CaffeineCache;
677680
678681
import java.time.Duration;
679-
import java.util.Optional;
682+
import java.util.Optional;import javax.inject.Singleton;
680683
681-
@ApplicationScoped
684+
@Singleton
682685
public class CacheConfigManager {
683686
684-
@Inject
685-
CacheManager cacheManager;
687+
private final CacheManager cacheManager;
688+
689+
public CacheConfigManager(CacheManager cacheManager) {
690+
this.cacheManager = cacheManager;
691+
}
686692
687693
public void setExpireAfterAccess(String cacheName, Duration duration) {
688694
Optional<Cache> cache = cacheManager.getCache(cacheName);
@@ -928,16 +934,19 @@ public class CachedService {
928934
----
929935
package org.acme.cache;
930936
931-
import jakarta.enterprise.context.ApplicationScoped;
932937
import jakarta.inject.Inject;
938+
import jakarta.inject.Singleton;
933939
934940
import io.quarkus.cache.CacheManager;
935941
936-
@ApplicationScoped
942+
@Singleton
937943
public class CacheClearer {
938944
939-
@Inject
940-
CacheManager cacheManager;
945+
private final CacheManager cacheManager;
946+
947+
public CacheClearer(CacheManager cacheManager) {
948+
this.cacheManager = cacheManager;
949+
}
941950
942951
public void clearAllCaches() {
943952
for (String cacheName : cacheManager.getCacheNames()) {

extensions/cache/runtime/src/main/java/io/quarkus/cache/CacheManager.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@
1313
* Code example:
1414
*
1515
* <pre>
16-
* {@literal @}ApplicationScoped
16+
* {@literal @}Singleton
1717
* public class CachedService {
1818
*
19-
* {@literal @}Inject
20-
* CacheManager cacheManager;
19+
* private final CacheManager cacheManager;
20+
*
21+
* public CachedService(CacheManager cacheManager) {
22+
* this.cacheManager = cacheManager;
23+
* }
2124
2225
* String getExpensiveValue(Object key) {
2326
* Cache cache = cacheManager.getCache("my-cache");

extensions/caffeine/deployment/src/main/java/io/quarkus/caffeine/deployment/CaffeineProcessor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ void cacheLoaders(CombinedIndexBuildItem combinedIndex, BuildProducer<Reflective
4242
}
4343
if (!effectiveImplementorNames.isEmpty()) {
4444
//Do not force registering any Caffeine classes if we can avoid it: there's a significant chain reaction
45-
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, CACHE_LOADER_CLASS_NAME));
46-
for (String name : effectiveImplementorNames) {
47-
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, name));
48-
}
45+
reflectiveClasses.produce(ReflectiveClassBuildItem.builder(CACHE_LOADER_CLASS_NAME).methods(true).build());
46+
47+
reflectiveClasses.produce(
48+
ReflectiveClassBuildItem.builder(effectiveImplementorNames.toArray(new String[0])).methods(true).build());
4949
}
5050
}
5151

0 commit comments

Comments
 (0)