Search in sources :

Example 11 with Cache

use of com.google.common.cache.Cache in project fess by codelibs.

the class ViewHelper method getCachedFacetResponse.

public FacetResponse getCachedFacetResponse(final String query) {
    final OptionalThing<FessUserBean> userBean = ComponentUtil.getComponent(FessLoginAssist.class).getSavedUserBean();
    final String permissionKey = userBean.map(user -> StreamUtil.stream(user.getPermissions()).get(stream -> stream.sorted().distinct().collect(Collectors.joining("\n")))).orElse(StringUtil.EMPTY);
    try {
        return facetCache.get(query + "\n" + permissionKey, () -> {
            final SearchHelper searchHelper = ComponentUtil.getSearchHelper();
            final SearchForm params = new SearchForm() {

                @Override
                public int getPageSize() {
                    return 0;
                }

                @Override
                public int getStartPosition() {
                    return 0;
                }
            };
            params.q = query;
            final SearchRenderData data = new SearchRenderData();
            searchHelper.search(params, data, userBean);
            if (logger.isDebugEnabled()) {
                logger.debug("loaded facet data: {}", data);
            }
            return data.getFacetResponse();
        });
    } catch (final ExecutionException e) {
        throw new FessSystemException("Cannot load facet from cache.", e);
    }
}
Also used : Constants(org.codelibs.fess.Constants) BufferedInputStream(java.io.BufferedInputStream) URLDecoder(java.net.URLDecoder) Date(java.util.Date) OptionalThing(org.dbflute.optional.OptionalThing) StringUtils(org.apache.commons.lang3.StringUtils) ActionRuntime(org.lastaflute.web.ruts.process.ActionRuntime) LaResponseUtil(org.lastaflute.web.util.LaResponseUtil) FessConfig(org.codelibs.fess.mylasta.direction.FessConfig) StreamResponse(org.lastaflute.web.response.StreamResponse) StreamUtil.split(org.codelibs.core.stream.StreamUtil.split) Matcher(java.util.regex.Matcher) StreamUtil(org.codelibs.core.stream.StreamUtil) Locale(java.util.Locale) Map(java.util.Map) LaFunctions(org.lastaflute.taglib.function.LaFunctions) SearchRenderData(org.codelibs.fess.entity.SearchRenderData) HttpSession(javax.servlet.http.HttpSession) Context(com.github.jknack.handlebars.Context) FacetQueryView(org.codelibs.fess.entity.FacetQueryView) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) CoreLibConstants(org.codelibs.core.CoreLibConstants) Collectors(java.util.stream.Collectors) ActionResponse(org.lastaflute.web.response.ActionResponse) List(java.util.List) Logger(org.apache.logging.log4j.Logger) ComponentUtil(org.codelibs.fess.util.ComponentUtil) PostConstruct(javax.annotation.PostConstruct) LaServletContextUtil(org.lastaflute.web.util.LaServletContextUtil) FileTemplateLoader(com.github.jknack.handlebars.io.FileTemplateLoader) Pattern(java.util.regex.Pattern) CacheBuilder(com.google.common.cache.CacheBuilder) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ResponseData(org.codelibs.fess.crawler.entity.ResponseData) DocumentUtil(org.codelibs.fess.util.DocumentUtil) FessSystemException(org.codelibs.fess.exception.FessSystemException) HighlightField(org.opensearch.search.fetch.subphase.highlight.HighlightField) HashMap(java.util.HashMap) ClientAbortException(org.apache.catalina.connector.ClientAbortException) Function(java.util.function.Function) CrawlingConfig(org.codelibs.fess.es.config.exentity.CrawlingConfig) LaRequestUtil(org.lastaflute.web.util.LaRequestUtil) ArrayList(java.util.ArrayList) CrawlerClient(org.codelibs.fess.crawler.client.CrawlerClient) UserAgentType(org.codelibs.fess.helper.UserAgentHelper.UserAgentType) HashSet(java.util.HashSet) FessUserBean(org.codelibs.fess.mylasta.action.FessUserBean) ResourceUtil(org.codelibs.fess.util.ResourceUtil) HttpServletRequest(javax.servlet.http.HttpServletRequest) Handlebars(com.github.jknack.handlebars.Handlebars) CharUtil(org.codelibs.fess.crawler.util.CharUtil) DynamicProperties(org.codelibs.core.misc.DynamicProperties) StringUtil(org.codelibs.core.lang.StringUtil) IOException(java.io.IOException) StringEscapeUtils(org.apache.commons.text.StringEscapeUtils) FacetResponse(org.codelibs.fess.util.FacetResponse) SessionTrackingMode(javax.servlet.SessionTrackingMode) File(java.io.File) CloseableUtil(org.codelibs.core.io.CloseableUtil) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) SearchForm(org.codelibs.fess.app.web.base.SearchForm) URLEncoder(java.net.URLEncoder) FessLoginAssist(org.codelibs.fess.app.web.base.login.FessLoginAssist) ServletContext(javax.servlet.ServletContext) HighlightInfo(org.codelibs.fess.entity.HighlightInfo) SimpleDateFormat(com.ibm.icu.text.SimpleDateFormat) Cache(com.google.common.cache.Cache) LogManager(org.apache.logging.log4j.LogManager) RequestDataBuilder(org.codelibs.fess.crawler.builder.RequestDataBuilder) CrawlerClientFactory(org.codelibs.fess.crawler.client.CrawlerClientFactory) Text(org.opensearch.common.text.Text) InputStream(java.io.InputStream) Template(com.github.jknack.handlebars.Template) FessUserBean(org.codelibs.fess.mylasta.action.FessUserBean) SearchRenderData(org.codelibs.fess.entity.SearchRenderData) ExecutionException(java.util.concurrent.ExecutionException) SearchForm(org.codelibs.fess.app.web.base.SearchForm) FessLoginAssist(org.codelibs.fess.app.web.base.login.FessLoginAssist) FessSystemException(org.codelibs.fess.exception.FessSystemException)

Example 12 with Cache

use of com.google.common.cache.Cache in project gerrit by GerritCodeReview.

the class Reindex method printCacheStats.

private void printCacheStats() {
    try (Writer sw = new StringWriter()) {
        sw.write("Cache Statistics at the end of reindexing\n");
        new CacheDisplay(sw, StreamSupport.stream(cacheMap.spliterator(), false).map(e -> new CacheInfo(e.getExportName(), e.get())).collect(Collectors.toList())).displayCaches();
        System.out.print(sw.toString());
    } catch (Exception e) {
        System.out.format("Error displaying the cache statistics\n" + e.getMessage());
    }
}
Also used : Module(com.google.inject.Module) SiteIndexer(com.google.gerrit.index.SiteIndexer) Inject(com.google.inject.Inject) Key(com.google.inject.Key) Config(org.eclipse.jgit.lib.Config) LibModuleLoader(com.google.gerrit.server.LibModuleLoader) NullOutputStream(org.eclipse.jgit.util.io.NullOutputStream) Map(java.util.Map) LuceneIndexModule(com.google.gerrit.lucene.LuceneIndexModule) CacheDisplay(com.google.gerrit.server.cache.CacheDisplay) Method(java.lang.reflect.Method) Collectors.toSet(java.util.stream.Collectors.toSet) GerritServerConfig(com.google.gerrit.server.config.GerritServerConfig) PluginGuiceEnvironment(com.google.gerrit.server.plugins.PluginGuiceEnvironment) Collection(java.util.Collection) Set(java.util.Set) Option(org.kohsuke.args4j.Option) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) Index(com.google.gerrit.index.Index) SiteProgram(com.google.gerrit.pgm.util.SiteProgram) InvocationTargetException(java.lang.reflect.InvocationTargetException) Die(com.google.gerrit.common.Die) List(java.util.List) Writer(java.io.Writer) FactoryModule(com.google.gerrit.extensions.config.FactoryModule) IndexDefinition(com.google.gerrit.index.IndexDefinition) HashMap(java.util.HashMap) TreeSet(java.util.TreeSet) CacheInfo(com.google.gerrit.server.cache.CacheInfo) ArrayList(java.util.ArrayList) AutoFlush(com.google.gerrit.server.index.options.AutoFlush) IndexModule(com.google.gerrit.server.index.IndexModule) ChangeResource(com.google.gerrit.server.change.ChangeResource) IndexType(com.google.gerrit.index.IndexType) Objects.requireNonNull(java.util.Objects.requireNonNull) StreamSupport(java.util.stream.StreamSupport) BatchProgramModule(com.google.gerrit.pgm.util.BatchProgramModule) ReplicaUtil(com.google.gerrit.server.util.ReplicaUtil) StringWriter(java.io.StringWriter) ModuleOverloader(com.google.gerrit.server.ModuleOverloader) IsFirstInsertForEntry(com.google.gerrit.server.index.options.IsFirstInsertForEntry) Injector(com.google.inject.Injector) TimeUnit(java.util.concurrent.TimeUnit) DynamicMap(com.google.gerrit.extensions.registration.DynamicMap) LifecycleManager(com.google.gerrit.lifecycle.LifecycleManager) OptionalBinder(com.google.inject.multibindings.OptionalBinder) Cache(com.google.common.cache.Cache) ChangeSchemaDefinitions(com.google.gerrit.server.index.change.ChangeSchemaDefinitions) AbstractModule(com.google.inject.AbstractModule) StringWriter(java.io.StringWriter) Writer(java.io.Writer) StringWriter(java.io.StringWriter) CacheDisplay(com.google.gerrit.server.cache.CacheDisplay) CacheInfo(com.google.gerrit.server.cache.CacheInfo) InvocationTargetException(java.lang.reflect.InvocationTargetException)

Example 13 with Cache

use of com.google.common.cache.Cache in project calcite-avatica by apache.

the class JdbcMetaTest method testPrepareSetsMaxRows.

@Test
public void testPrepareSetsMaxRows() throws Exception {
    final String id = UUID.randomUUID().toString();
    final String sql = "SELECT * FROM FOO";
    final int maxRows = 500;
    final ConnectionHandle ch = new ConnectionHandle(id);
    final AtomicInteger statementIdGenerator = new AtomicInteger(0);
    JdbcMeta meta = Mockito.mock(JdbcMeta.class);
    Connection connection = Mockito.mock(Connection.class);
    PreparedStatement statement = Mockito.mock(PreparedStatement.class);
    ResultSetMetaData resultSetMetaData = Mockito.mock(ResultSetMetaData.class);
    ParameterMetaData parameterMetaData = Mockito.mock(ParameterMetaData.class);
    @SuppressWarnings("unchecked") Cache<Integer, StatementInfo> statementCache = (Cache<Integer, StatementInfo>) Mockito.mock(Cache.class);
    Mockito.when(meta.getStatementIdGenerator()).thenReturn(statementIdGenerator);
    Mockito.when(meta.getStatementCache()).thenReturn(statementCache);
    Mockito.when(meta.getConnection(id)).thenReturn(connection);
    Mockito.when(connection.prepareStatement(sql)).thenReturn(statement);
    Mockito.when(statement.isWrapperFor(AvaticaPreparedStatement.class)).thenReturn(false);
    Mockito.when(statement.getMetaData()).thenReturn(resultSetMetaData);
    Mockito.when(statement.getParameterMetaData()).thenReturn(parameterMetaData);
    // Call the real methods
    Mockito.doCallRealMethod().when(meta).setMaxRows(statement, maxRows);
    Mockito.doCallRealMethod().when(meta).prepare(ch, sql, maxRows);
    meta.prepare(ch, sql, maxRows);
    Mockito.verify(statement).setMaxRows(maxRows);
}
Also used : ConnectionHandle(org.apache.calcite.avatica.Meta.ConnectionHandle) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) AvaticaPreparedStatement(org.apache.calcite.avatica.AvaticaPreparedStatement) ResultSetMetaData(java.sql.ResultSetMetaData) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ParameterMetaData(java.sql.ParameterMetaData) Cache(com.google.common.cache.Cache) Test(org.junit.Test)

Example 14 with Cache

use of com.google.common.cache.Cache in project meteo by pierre.

the class StreamResource method getSamplesByRoute.

/**
 * Get the data points associated with a field in an Esper query.
 * For this to work, you need to add ResourceListener as a publisher and configure it in a stream:
 * {
 * "name": "Jansky",
 * "type": "com.ning.metrics.meteo.publishers.ResourceListener",
 * "@class": "com.ning.metrics.meteo.publishers.ResourcePublisherConfig"
 * }
 *
 * @param callback  Javascript callback
 * @param stream Stream name
 * @param attribute the SQL alias of an Esper query
 * @return jsonp representation of the data points in memory
 */
@GET
@Path("/{stream}/{attribute}")
@Produces(MediaType.APPLICATION_JSON)
public Response getSamplesByRoute(@QueryParam("callback") @DefaultValue("callback") final String callback, @PathParam("stream") final String stream, @PathParam("attribute") final String attribute) {
    Cache<Object, Object> samplesCache = null;
    final ResourceListener resourceListener = (ResourceListener) compiler.getPublisherInstances().get(stream);
    if (resourceListener != null) {
        final Map<String, Cache<Object, Object>> samples = resourceListener.getSamplesCache();
        samplesCache = samples.get(attribute);
    }
    return buildJsonpResponse(attribute, samplesCache, callback);
}
Also used : ResourceListener(com.ning.metrics.meteo.publishers.ResourceListener) JSONPObject(org.codehaus.jackson.map.util.JSONPObject) Cache(com.google.common.cache.Cache) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 15 with Cache

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

the class RDBMUserLayoutStore method getUserProfileByFname.

@Override
public UserProfile getUserProfileByFname(final IPerson person, final String profileFname) {
    Tuple<String, String> key = null;
    final Cache<Tuple<String, String>, UserProfile> profileCache = getProfileImportExportCache();
    if (profileCache != null) {
        key = new Tuple<>(person.getUserName(), profileFname);
        final UserProfile profile = profileCache.getIfPresent(key);
        if (profile != null) {
            return profile;
        }
    }
    logger.debug("Getting profile {} for user {}", profileFname, person.getID());
    final int userId = person.getID();
    final UserProfile userProfile = jdbcOperations.execute((ConnectionCallback<UserProfile>) con -> {
        String query = "SELECT USER_ID, PROFILE_ID, PROFILE_NAME, DESCRIPTION, " + "LAYOUT_ID, STRUCTURE_SS_ID, THEME_SS_ID FROM UP_USER_PROFILE WHERE " + "USER_ID=? AND PROFILE_FNAME=?";
        PreparedStatement pstmt = con.prepareStatement(query);
        pstmt.setInt(1, userId);
        pstmt.setString(2, profileFname);
        try {
            logger.debug("getUserProfileByFname(): {} userId: {} profileFname: {}", query, userId, profileFname);
            try (ResultSet rs = pstmt.executeQuery()) {
                if (rs.next()) {
                    int profileId = rs.getInt(2);
                    String profileName = rs.getString(3);
                    String profileDesc = rs.getString(4);
                    int layoutId = rs.getInt(5);
                    if (rs.wasNull()) {
                        layoutId = 0;
                    }
                    int structSsId = rs.getInt(6);
                    if (rs.wasNull()) {
                        if (!person.equals(getSystemUser())) {
                            structSsId = getSystemProfileByFname(profileFname).getStructureStylesheetId();
                        } else {
                            String msg = "The system user profile has no structure stylesheet Id.";
                            throw new IllegalStateException(msg);
                        }
                    }
                    int themeSsId = rs.getInt(7);
                    if (rs.wasNull()) {
                        if (!person.equals(getSystemUser())) {
                            themeSsId = getSystemProfileByFname(profileFname).getThemeStylesheetId();
                        } else {
                            String msg = "The system user profile has no theme stylesheet Id.";
                            throw new IllegalStateException(msg);
                        }
                    }
                    UserProfile userProfile1 = new UserProfile(profileId, profileFname, profileName, profileDesc, layoutId, structSsId, themeSsId);
                    final Locale[] userLocales = localeStore.getUserLocales(person);
                    final LocaleManager localeManager = localeManagerFactory.createLocaleManager(person, Arrays.asList(userLocales));
                    userProfile1.setLocaleManager(localeManager);
                    return userProfile1;
                }
                logger.debug("Copying template profile {} to user {}", profileFname, person.getID());
                rs.close();
                pstmt.close();
                int defaultProfileUser = getSystemUser().getID();
                IPerson defaultProfilePerson = new PersonImpl();
                defaultProfilePerson.setID(defaultProfileUser);
                if (defaultProfilePerson.getID() != person.getID()) {
                    UserProfile templateProfile = getUserProfileByFname(defaultProfilePerson, profileFname);
                    if (templateProfile != null) {
                        UserProfile newUserProfile = new UserProfile(templateProfile);
                        final Locale[] userLocales = localeStore.getUserLocales(person);
                        newUserProfile.setLayoutId(0);
                        newUserProfile = addUserProfile(person, newUserProfile);
                        final LocaleManager localeManager = localeManagerFactory.createLocaleManager(person, Arrays.asList(userLocales));
                        newUserProfile.setLocaleManager(localeManager);
                        return newUserProfile;
                    }
                }
                throw new RuntimeException("Unable to find User Profile for userId " + userId + " and profile " + profileFname);
            }
        } finally {
            pstmt.close();
        }
    });
    if (profileCache != null) {
        profileCache.put(key, userProfile);
    }
    return userProfile;
}
Also used : Arrays(java.util.Arrays) IUserLayoutStore(org.apereo.portal.layout.IUserLayoutStore) Connection(java.sql.Connection) JdbcOperations(org.springframework.jdbc.core.JdbcOperations) Enumeration(java.util.Enumeration) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) Tuple(org.apereo.portal.utils.Tuple) ResultSet(java.sql.ResultSet) Locale(java.util.Locale) Document(org.w3c.dom.Document) Map(java.util.Map) DefaultTransactionDefinition(org.springframework.transaction.support.DefaultTransactionDefinition) IPortletDefinitionRegistry(org.apereo.portal.portlet.registry.IPortletDefinitionRegistry) ILocaleStore(org.apereo.portal.i18n.ILocaleStore) LayoutStructure(org.apereo.portal.layout.LayoutStructure) Collection(java.util.Collection) Resource(javax.annotation.Resource) Set(java.util.Set) PreparedStatement(java.sql.PreparedStatement) DocumentFactory(org.apereo.portal.utils.DocumentFactory) ISecurityContext(org.apereo.portal.security.ISecurityContext) List(java.util.List) PlatformTransactionManager(org.springframework.transaction.PlatformTransactionManager) BasePortalJpaDao(org.apereo.portal.jpa.BasePortalJpaDao) TransactionOperations(org.springframework.transaction.support.TransactionOperations) ConnectionCallback(org.springframework.jdbc.core.ConnectionCallback) DataAccessException(org.springframework.dao.DataAccessException) DatabaseMetaDataImpl(org.apereo.portal.jdbc.DatabaseMetaDataImpl) CounterStoreLocator(org.apereo.portal.spring.locator.CounterStoreLocator) PersonImpl(org.apereo.portal.security.provider.PersonImpl) HashMap(java.util.HashMap) InitializingBean(org.springframework.beans.factory.InitializingBean) JdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) HashSet(java.util.HashSet) SQLException(java.sql.SQLException) Node(org.w3c.dom.Node) DataSource(javax.sql.DataSource) Qualifier(org.springframework.beans.factory.annotation.Qualifier) IPerson(org.apereo.portal.security.IPerson) SingletonDoubleCheckedCreator(org.apereo.portal.utils.threading.SingletonDoubleCheckedCreator) IJoinQueryString(org.apereo.portal.jdbc.IJoinQueryString) Hashtable(java.util.Hashtable) Logger(org.slf4j.Logger) IUserProfile(org.apereo.portal.IUserProfile) LocaleManagerFactory(org.apereo.portal.i18n.LocaleManagerFactory) UserProfile(org.apereo.portal.UserProfile) IStylesheetDescriptorDao(org.apereo.portal.layout.dao.IStylesheetDescriptorDao) Date(java.sql.Date) IDatabaseMetadata(org.apereo.portal.jdbc.IDatabaseMetadata) Element(org.w3c.dom.Element) EntityIdentifier(org.apereo.portal.EntityIdentifier) TransactionTemplate(org.springframework.transaction.support.TransactionTemplate) Statement(java.sql.Statement) Cache(com.google.common.cache.Cache) LocaleManager(org.apereo.portal.i18n.LocaleManager) IUserProfile(org.apereo.portal.IUserProfile) UserProfile(org.apereo.portal.UserProfile) PreparedStatement(java.sql.PreparedStatement) IJoinQueryString(org.apereo.portal.jdbc.IJoinQueryString) IPerson(org.apereo.portal.security.IPerson) PersonImpl(org.apereo.portal.security.provider.PersonImpl) ResultSet(java.sql.ResultSet) LocaleManager(org.apereo.portal.i18n.LocaleManager) Tuple(org.apereo.portal.utils.Tuple)

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