Search in sources :

Example 16 with Cache

use of com.google.common.cache.Cache in project uPortal by Jasig.

the class SearchPortletController method getPortalSearchResults.

/**
 * Get the {@link PortalSearchResults} for the specified query id from the session. If there are
 * no results null is returned.
 */
private PortalSearchResults getPortalSearchResults(PortletRequest request, String queryId) {
    final PortletSession session = request.getPortletSession();
    @SuppressWarnings("unchecked") final Cache<String, PortalSearchResults> searchResultsCache = (Cache<String, PortalSearchResults>) session.getAttribute(SEARCH_RESULTS_CACHE_NAME);
    if (searchResultsCache == null) {
        return null;
    }
    return searchResultsCache.getIfPresent(queryId);
}
Also used : PortletSession(javax.portlet.PortletSession) Cache(com.google.common.cache.Cache)

Example 17 with Cache

use of com.google.common.cache.Cache in project qpid-broker-j by apache.

the class CacheFactoryTest method getCache.

@Test
public void getCache() {
    String cacheName = "test";
    final Cache<Object, Object> cache = new NullCache<>();
    final CacheProvider virtualHost = mock(CacheProvider.class, withSettings().extraInterfaces(VirtualHost.class));
    when(virtualHost.getNamedCache(cacheName)).thenReturn(cache);
    final Subject subject = new Subject();
    subject.getPrincipals().add(new VirtualHostPrincipal((VirtualHost<?>) virtualHost));
    subject.setReadOnly();
    Cache<String, String> actualCache = Subject.doAs(subject, (PrivilegedAction<Cache<String, String>>) () -> CacheFactory.getCache(cacheName, null));
    assertSame(actualCache, cache);
    verify(virtualHost).getNamedCache(cacheName);
}
Also used : VirtualHost(org.apache.qpid.server.model.VirtualHost) Subject(javax.security.auth.Subject) Cache(com.google.common.cache.Cache) Test(org.junit.Test)

Example 18 with Cache

use of com.google.common.cache.Cache in project pravega by pravega.

the class BaseMetadataStore method writeToMetadataStore.

/**
 * Writes modified values to the metadata store.
 */
private CompletableFuture<Void> writeToMetadataStore(boolean lazyWrite, ArrayList<TransactionData> modifiedValues) {
    if (!lazyWrite || (bufferCount.get() > maxEntriesInTxnBuffer)) {
        log.trace("Persisting all modified keys (except pinned)");
        val toWriteList = modifiedValues.stream().filter(entry -> !entry.isPinned()).collect(Collectors.toList());
        if (toWriteList.size() > 0) {
            return writeAll(toWriteList).thenRunAsync(() -> {
                log.trace("Done persisting all modified keys");
                for (val writtenData : toWriteList) {
                    // Mark written keys as persisted.
                    writtenData.setPersisted(true);
                    // Put it in cache.
                    cache.put(writtenData.getKey(), writtenData);
                }
            }, executor);
        } else {
            return CompletableFuture.completedFuture(null);
        }
    }
    return CompletableFuture.completedFuture(null);
}
Also used : lombok.val(lombok.val) Setter(lombok.Setter) COMMIT_LATENCY(io.pravega.segmentstore.storage.metadata.StorageMetadataMetrics.COMMIT_LATENCY) Getter(lombok.Getter) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) RevisionDataInput(io.pravega.common.io.serialization.RevisionDataInput) ChunkedSegmentStorageConfig(io.pravega.segmentstore.storage.chunklayer.ChunkedSegmentStorageConfig) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) AccessLevel(lombok.AccessLevel) METADATA_BUFFER_EVICTED_COUNT(io.pravega.segmentstore.storage.metadata.StorageMetadataMetrics.METADATA_BUFFER_EVICTED_COUNT) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) STORAGE_METADATA_CACHE_SIZE(io.pravega.shared.MetricsNames.STORAGE_METADATA_CACHE_SIZE) Map(java.util.Map) METADATA_FOUND_IN_BUFFER(io.pravega.segmentstore.storage.metadata.StorageMetadataMetrics.METADATA_FOUND_IN_BUFFER) STORAGE_METADATA_BUFFER_SIZE(io.pravega.shared.MetricsNames.STORAGE_METADATA_BUFFER_SIZE) RevisionDataOutput(io.pravega.common.io.serialization.RevisionDataOutput) VersionedSerializer(io.pravega.common.io.serialization.VersionedSerializer) METADATA_FOUND_IN_CACHE(io.pravega.segmentstore.storage.metadata.StorageMetadataMetrics.METADATA_FOUND_IN_CACHE) Executor(java.util.concurrent.Executor) Collection(java.util.Collection) lombok.val(lombok.val) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) IOException(java.io.IOException) CompletionException(java.util.concurrent.CompletionException) GuardedBy(javax.annotation.concurrent.GuardedBy) Timer(io.pravega.common.Timer) Collectors(java.util.stream.Collectors) Beta(com.google.common.annotations.Beta) Serializable(java.io.Serializable) ObjectBuilder(io.pravega.common.ObjectBuilder) AtomicLong(java.util.concurrent.atomic.AtomicLong) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Stream(java.util.stream.Stream) ConcurrentHashMultiset(com.google.common.collect.ConcurrentHashMultiset) Builder(lombok.Builder) STORAGE_METADATA_CACHE_MISS_RATE(io.pravega.shared.MetricsNames.STORAGE_METADATA_CACHE_MISS_RATE) GET_LATENCY(io.pravega.segmentstore.storage.metadata.StorageMetadataMetrics.GET_LATENCY) Data(lombok.Data) Preconditions(com.google.common.base.Preconditions) VisibleForTesting(com.google.common.annotations.VisibleForTesting) CacheBuilder(com.google.common.cache.CacheBuilder) Cache(com.google.common.cache.Cache) METADATA_FOUND_IN_TXN(io.pravega.segmentstore.storage.metadata.StorageMetadataMetrics.METADATA_FOUND_IN_TXN) Futures(io.pravega.common.concurrent.Futures)

Example 19 with Cache

use of com.google.common.cache.Cache in project sofa-ark by alipay.

the class BizClassLoaderTest method getUrlResourceCache.

private Cache<String, Optional<URL>> getUrlResourceCache(Object classloader) throws NoSuchFieldException, IllegalAccessException {
    Field field = AbstractClasspathClassLoader.class.getDeclaredField("urlResourceCache");
    field.setAccessible(true);
    return (Cache<String, Optional<URL>>) field.get(classloader);
}
Also used : Field(java.lang.reflect.Field) URL(java.net.URL) Cache(com.google.common.cache.Cache)

Example 20 with Cache

use of com.google.common.cache.Cache in project cas by apereo.

the class CasPersonDirectoryConfiguration method composeMergedAndCachedAttributeRepositories.

private IPersonAttributeDao composeMergedAndCachedAttributeRepositories(final List<IPersonAttributeDao> list) {
    final MergingPersonAttributeDaoImpl mergingDao = new MergingPersonAttributeDaoImpl();
    final String merger = StringUtils.defaultIfBlank(casProperties.getAuthn().getAttributeRepository().getMerger(), "replace".trim());
    LOGGER.debug("Configured merging strategy for attribute sources is [{}]", merger);
    switch(merger.toLowerCase()) {
        case "merge":
            mergingDao.setMerger(new MultivaluedAttributeMerger());
            break;
        case "add":
            mergingDao.setMerger(new NoncollidingAttributeAdder());
            break;
        case "replace":
        default:
            mergingDao.setMerger(new ReplacingAttributeAdder());
            break;
    }
    final CachingPersonAttributeDaoImpl impl = new CachingPersonAttributeDaoImpl();
    impl.setCacheNullResults(false);
    final Cache graphs = CacheBuilder.newBuilder().concurrencyLevel(2).weakKeys().maximumSize(casProperties.getAuthn().getAttributeRepository().getMaximumCacheSize()).expireAfterWrite(casProperties.getAuthn().getAttributeRepository().getExpireInMinutes(), TimeUnit.MINUTES).build();
    impl.setUserInfoCache(graphs.asMap());
    mergingDao.setPersonAttributeDaos(list);
    impl.setCachedPersonAttributesDao(mergingDao);
    if (list.isEmpty()) {
        LOGGER.debug("No attribute repository sources are available/defined to merge together.");
    } else {
        LOGGER.debug("Configured attribute repository sources to merge together: [{}]", list);
        LOGGER.debug("Configured cache expiration policy for merging attribute sources to be [{}] minute(s)", casProperties.getAuthn().getAttributeRepository().getExpireInMinutes());
    }
    return impl;
}
Also used : CachingPersonAttributeDaoImpl(org.apereo.services.persondir.support.CachingPersonAttributeDaoImpl) ReplacingAttributeAdder(org.apereo.services.persondir.support.merger.ReplacingAttributeAdder) MergingPersonAttributeDaoImpl(org.apereo.services.persondir.support.MergingPersonAttributeDaoImpl) NoncollidingAttributeAdder(org.apereo.services.persondir.support.merger.NoncollidingAttributeAdder) MultivaluedAttributeMerger(org.apereo.services.persondir.support.merger.MultivaluedAttributeMerger) Cache(com.google.common.cache.Cache)

Aggregations

Cache (com.google.common.cache.Cache)43 List (java.util.List)21 CacheBuilder (com.google.common.cache.CacheBuilder)19 Set (java.util.Set)11 Collectors (java.util.stream.Collectors)11 ArrayList (java.util.ArrayList)10 Optional (java.util.Optional)10 TimeUnit (java.util.concurrent.TimeUnit)10 MILLISECONDS (java.util.concurrent.TimeUnit.MILLISECONDS)10 Module (com.google.inject.Module)9 CachingOrcFileTailSource (com.facebook.presto.orc.cache.CachingOrcFileTailSource)8 OrcFileTailSource (com.facebook.presto.orc.cache.OrcFileTailSource)8 StorageOrcFileTailSource (com.facebook.presto.orc.cache.StorageOrcFileTailSource)8 OrcFileTail (com.facebook.presto.orc.metadata.OrcFileTail)8 ExecutorService (java.util.concurrent.ExecutorService)8 ConfigBinder.configBinder (com.facebook.airlift.configuration.ConfigBinder.configBinder)7 CachingStripeMetadataSource (com.facebook.presto.orc.CachingStripeMetadataSource)7 DwrfAwareStripeMetadataSourceFactory (com.facebook.presto.orc.DwrfAwareStripeMetadataSourceFactory)7 OrcDataSourceId (com.facebook.presto.orc.OrcDataSourceId)7 StorageStripeMetadataSource (com.facebook.presto.orc.StorageStripeMetadataSource)7