Search in sources :

Example 76 with Pageable

use of org.springframework.data.domain.Pageable in project kylo by Teradata.

the class CommonFilterTranslations method resolveSortFilters.

/**
 * Update the Pageable sort filter and resolve any filter strings if needed
 */
public static Pageable resolveSortFilters(EntityPathBase base, Pageable pageable) {
    if (pageable != null && pageable.getSort() != null) {
        List<Sort.Order> sortList = Lists.newArrayList(pageable.getSort().iterator());
        boolean anyMatch = sortList.stream().anyMatch(order -> containsFilterMappings(base, order.getProperty()));
        // if there is a match reconstruct pageable
        if (anyMatch) {
            List<Sort.Order> updatedSortOrder = sortList.stream().map(order -> new Sort.Order(order.getDirection(), resolvedFilter(base, order.getProperty()))).collect(Collectors.toList());
            Sort sort = new Sort(updatedSortOrder);
            Pageable updatedPageable = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), sort);
            return updatedPageable;
        }
    }
    return pageable;
}
Also used : ImmutableMap(com.google.common.collect.ImmutableMap) PageRequest(org.springframework.data.domain.PageRequest) HashMap(java.util.HashMap) QJpaBatchJobExecution(com.thinkbiganalytics.metadata.jpa.jobrepo.job.QJpaBatchJobExecution) Collectors(java.util.stream.Collectors) QJpaServiceLevelAssessment(com.thinkbiganalytics.metadata.jpa.sla.QJpaServiceLevelAssessment) List(java.util.List) Lists(com.google.common.collect.Lists) ImmutableList(com.google.common.collect.ImmutableList) QJpaOpsManagerFeed(com.thinkbiganalytics.metadata.jpa.feed.QJpaOpsManagerFeed) Map(java.util.Map) EntityPathBase(com.querydsl.core.types.dsl.EntityPathBase) Pageable(org.springframework.data.domain.Pageable) Sort(org.springframework.data.domain.Sort) PageRequest(org.springframework.data.domain.PageRequest) Pageable(org.springframework.data.domain.Pageable) Sort(org.springframework.data.domain.Sort)

Example 77 with Pageable

use of org.springframework.data.domain.Pageable in project kylo by Teradata.

the class JpaBatchJobExecutionProviderTest method findAll_NoMatchingGroupAclEntry.

@WithMockJaasUser(username = "dladmin", password = "secret", authorities = { "admin", "user" })
@Test
public void findAll_NoMatchingGroupAclEntry() throws Exception {
    Pageable pageable = new PageRequest(0, 5);
    Page<? extends BatchJobExecution> all = repo.findAll(null, pageable);
}
Also used : PageRequest(org.springframework.data.domain.PageRequest) Pageable(org.springframework.data.domain.Pageable) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) WithMockJaasUser(com.thinkbiganalytics.test.security.WithMockJaasUser)

Example 78 with Pageable

use of org.springframework.data.domain.Pageable in project kylo by Teradata.

the class HiveMetastoreService method listTables.

@Nonnull
public List<JdbcTable> listTables(@Nullable final String catalog, @Nullable final String schema, @Nullable final String pattern, @Nullable final Pageable pageable) {
    String query = "SELECT d.NAME as \"DATABASE_NAME\", t.TBL_NAME, t.TBL_TYPE, p.PARAM_VALUE" + " FROM TBLS t" + " JOIN DBS d on d.DB_ID = t.DB_ID" + " LEFT JOIN TABLE_PARAMS p on p.TBL_ID = t.TBL_ID AND p.PARAM_KEY = \"comment\"" + " WHERE d.NAME LIKE ? " + " AND t.TBL_NAME LIKE ? " + " ORDER BY \"DATABASE_NAME\", t.TBL_NAME";
    if (DatabaseType.POSTGRES.equals(getMetastoreDatabaseType())) {
        query = "SELECT d.\"NAME\" as \"DATABASE_NAME\", t.\"TBL_NAME\", t.\"TBL_TYPE\", p.\"PARAM_VALUE\"" + " FROM \"TBLS\" t" + " JOIN \"DBS\" d on d.\"DB_ID\" = t.\"DB_ID\" " + " LEFT JOIN \"TABLE_PARAMS\" p ON p.\"TBL_ID\" = t.\"TBL_ID\" and p.\"PARAM_KEY\" = 'comment'" + " WHERE d.\"NAME\" LIKE ? " + " AND t.\"TBL_NAME\" LIKE ? " + " ORDER BY d.\"NAME\", t.\"TBL_NAME\"";
    }
    final List<JdbcTable> tables = hiveMetatoreJdbcTemplate.query(query, ps -> {
        ps.setString(1, schema == null ? "%" : schema);
        ps.setString(2, pattern == null ? "%" : "%" + pattern + "%");
    }, (rs, i) -> {
        final DefaultJdbcTable jdbcTable = new DefaultJdbcTable(rs.getString("TBL_NAME"), rs.getString("TBL_TYPE"));
        jdbcTable.setIdentifierQuoteString("`");
        jdbcTable.setRemarks(rs.getString("PARAM_VALUE"));
        jdbcTable.setSchema(rs.getString("DATABASE_NAME"));
        return jdbcTable;
    });
    if (userImpersonationEnabled) {
        return tables.stream().filter(jdbcTable -> hiveService.isTableAccessibleByImpersonatedUser(jdbcTable.getSchema() + "." + jdbcTable.getName())).collect(Collectors.toList());
    } else {
        return tables;
    }
}
Also used : DatabaseType(com.thinkbiganalytics.jdbc.util.DatabaseType) DataAccessException(org.springframework.dao.DataAccessException) DatabaseMetadata(com.thinkbiganalytics.discovery.schema.DatabaseMetadata) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) HashMap(java.util.HashMap) MetaDataAccessException(org.springframework.jdbc.support.MetaDataAccessException) DefaultField(com.thinkbiganalytics.discovery.model.DefaultField) JdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) ArrayList(java.util.ArrayList) Value(org.springframework.beans.factory.annotation.Value) SQLException(java.sql.SQLException) DefaultDatabaseMetadata(com.thinkbiganalytics.discovery.model.DefaultDatabaseMetadata) Service(org.springframework.stereotype.Service) ResultSet(java.sql.ResultSet) Map(java.util.Map) Qualifier(org.springframework.beans.factory.annotation.Qualifier) DataSource(javax.sql.DataSource) Pageable(org.springframework.data.domain.Pageable) DefaultJdbcTable(com.thinkbiganalytics.schema.DefaultJdbcTable) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) Logger(org.slf4j.Logger) DefaultJdbcSchema(com.thinkbiganalytics.schema.DefaultJdbcSchema) JdbcCatalog(com.thinkbiganalytics.discovery.schema.JdbcCatalog) Collectors(java.util.stream.Collectors) List(java.util.List) Field(com.thinkbiganalytics.discovery.schema.Field) JdbcSchema(com.thinkbiganalytics.discovery.schema.JdbcSchema) RowMapper(org.springframework.jdbc.core.RowMapper) TableSchema(com.thinkbiganalytics.discovery.schema.TableSchema) DefaultTableSchema(com.thinkbiganalytics.discovery.model.DefaultTableSchema) JdbcTable(com.thinkbiganalytics.discovery.schema.JdbcTable) Collections(java.util.Collections) DefaultJdbcTable(com.thinkbiganalytics.schema.DefaultJdbcTable) DefaultJdbcTable(com.thinkbiganalytics.schema.DefaultJdbcTable) JdbcTable(com.thinkbiganalytics.discovery.schema.JdbcTable) Nonnull(javax.annotation.Nonnull)

Example 79 with Pageable

use of org.springframework.data.domain.Pageable in project kylo by Teradata.

the class DataSourceProvider method findAllDataSources.

/**
 * Gets the list of available connectors.
 */
@Nonnull
public Page<DataSource> findAllDataSources(@Nonnull final Pageable pageable, @Nullable final String filter) {
    // Filter catalog data sources
    final Supplier<Stream<DataSource>> catalogDataSources = () -> metadataService.read(() -> metadataProvider.findAll().stream().map(modelTransform.dataSourceToRestModel()));
    // Filter feed data sources
    final DatasourceCriteria feedDataSourcesCriteria = feedDataSourceProvider.datasetCriteria().type(UserDatasource.class);
    final Supplier<Stream<DataSource>> feedDataSources = () -> feedDataSourceProvider.getDatasources(feedDataSourcesCriteria).stream().filter(containsIgnoreCase(Datasource::getName, filter)).map(datasource -> toDataSource(datasource, DatasourceModelTransform.Level.BASIC)).filter(Objects::nonNull);
    // Sort and paginate
    final List<DataSource> filteredDataSources = Stream.concat(catalogDataSources.get(), feedDataSources.get()).sorted(Comparator.comparing(DataSource::getTitle)).skip(pageable.getOffset()).limit(pageable.getPageSize()).peek(findConnector()).collect(Collectors.toList());
    return new PageImpl<>(filteredDataSources, pageable, catalogDataSources.get().count() + feedDataSources.get().count());
}
Also used : Arrays(java.util.Arrays) LoggerFactory(org.slf4j.LoggerFactory) DatasourceModelTransform(com.thinkbiganalytics.feedmgr.service.datasource.DatasourceModelTransform) Autowired(org.springframework.beans.factory.annotation.Autowired) StringUtils(org.apache.commons.lang3.StringUtils) DefaultDataSetTemplate(com.thinkbiganalytics.kylo.catalog.rest.model.DefaultDataSetTemplate) NifiClientRuntimeException(com.thinkbiganalytics.nifi.rest.client.NifiClientRuntimeException) DatasourceCriteria(com.thinkbiganalytics.metadata.api.datasource.DatasourceCriteria) DataSource(com.thinkbiganalytics.kylo.catalog.rest.model.DataSource) Map(java.util.Map) NiFiRestClient(com.thinkbiganalytics.nifi.rest.client.NiFiRestClient) Pageable(org.springframework.data.domain.Pageable) MetadataAccess(com.thinkbiganalytics.metadata.api.MetadataAccess) NiFiControllerServicesRestClient(com.thinkbiganalytics.nifi.rest.client.NiFiControllerServicesRestClient) CatalogModelTransform(com.thinkbiganalytics.kylo.catalog.rest.model.CatalogModelTransform) PropertyPlaceholderHelper(org.springframework.util.PropertyPlaceholderHelper) ControllerServiceDTO(org.apache.nifi.web.api.dto.ControllerServiceDTO) Predicate(java.util.function.Predicate) Page(org.springframework.data.domain.Page) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) Stream(java.util.stream.Stream) ConnectorPluginNiFiControllerService(com.thinkbiganalytics.kylo.catalog.rest.model.ConnectorPluginNiFiControllerService) Optional(java.util.Optional) PageImpl(org.springframework.data.domain.PageImpl) ConnectorPlugin(com.thinkbiganalytics.kylo.catalog.spi.ConnectorPlugin) ConnectorPluginManager(com.thinkbiganalytics.kylo.catalog.ConnectorPluginManager) HashMap(java.util.HashMap) Function(java.util.function.Function) Supplier(java.util.function.Supplier) DataSetTemplate(com.thinkbiganalytics.kylo.catalog.rest.model.DataSetTemplate) ConnectorPluginNiFiControllerServicePropertyDescriptor(com.thinkbiganalytics.kylo.catalog.rest.model.ConnectorPluginNiFiControllerServicePropertyDescriptor) JdbcDatasource(com.thinkbiganalytics.metadata.rest.model.data.JdbcDatasource) CatalogException(com.thinkbiganalytics.kylo.catalog.CatalogException) DataSourceCredentialManager(com.thinkbiganalytics.kylo.catalog.credential.api.DataSourceCredentialManager) NifiComponentNotFoundException(com.thinkbiganalytics.nifi.rest.client.NifiComponentNotFoundException) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) ConnectorProvider(com.thinkbiganalytics.metadata.api.catalog.ConnectorProvider) UserDatasource(com.thinkbiganalytics.metadata.api.datasource.UserDatasource) Datasource(com.thinkbiganalytics.metadata.api.datasource.Datasource) SecurityContextUtil(com.thinkbiganalytics.security.context.SecurityContextUtil) Logger(org.slf4j.Logger) Consumer(java.util.function.Consumer) Component(org.springframework.stereotype.Component) Connector(com.thinkbiganalytics.kylo.catalog.rest.model.Connector) ConnectorPluginDescriptor(com.thinkbiganalytics.kylo.catalog.rest.model.ConnectorPluginDescriptor) Comparator(java.util.Comparator) DatasourceProvider(com.thinkbiganalytics.metadata.api.datasource.DatasourceProvider) PageImpl(org.springframework.data.domain.PageImpl) Objects(java.util.Objects) DatasourceCriteria(com.thinkbiganalytics.metadata.api.datasource.DatasourceCriteria) Stream(java.util.stream.Stream) DataSource(com.thinkbiganalytics.kylo.catalog.rest.model.DataSource) Nonnull(javax.annotation.Nonnull)

Example 80 with Pageable

use of org.springframework.data.domain.Pageable in project mica2 by obiba.

the class FileIndexer method reIndexAll.

@Async
@Subscribe
public void reIndexAll(IndexFilesEvent event) {
    if (indexer.hasIndex(Indexer.ATTACHMENT_DRAFT_INDEX))
        indexer.dropIndex(Indexer.ATTACHMENT_DRAFT_INDEX);
    if (indexer.hasIndex(Indexer.ATTACHMENT_PUBLISHED_INDEX))
        indexer.dropIndex(Indexer.ATTACHMENT_PUBLISHED_INDEX);
    Pageable pageRequest = new PageRequest(0, 100);
    Page<AttachmentState> attachments;
    do {
        attachments = attachmentStateRepository.findAll(pageRequest);
        attachments.forEach(a -> {
            if (FileUtils.isDirectory(a))
                return;
            indexer.index(Indexer.ATTACHMENT_DRAFT_INDEX, a);
            if (a.getPublishedAttachment() != null) {
                indexer.index(Indexer.ATTACHMENT_PUBLISHED_INDEX, a);
            }
        });
    } while ((pageRequest = attachments.nextPageable()) != null);
}
Also used : PageRequest(org.springframework.data.domain.PageRequest) AttachmentState(org.obiba.mica.file.AttachmentState) Pageable(org.springframework.data.domain.Pageable) Async(org.springframework.scheduling.annotation.Async) Subscribe(com.google.common.eventbus.Subscribe)

Aggregations

Pageable (org.springframework.data.domain.Pageable)172 PageRequest (org.springframework.data.domain.PageRequest)91 Sort (org.springframework.data.domain.Sort)79 Test (org.junit.Test)39 PageImpl (org.springframework.data.domain.PageImpl)24 Collectors (java.util.stream.Collectors)17 Page (org.springframework.data.domain.Page)16 ArrayList (java.util.ArrayList)14 Autowired (org.springframework.beans.factory.annotation.Autowired)14 GetMapping (org.springframework.web.bind.annotation.GetMapping)12 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)12 List (java.util.List)11 UUID (java.util.UUID)10 ApiOperation (io.swagger.annotations.ApiOperation)9 Calendar (java.util.Calendar)9 Test (org.junit.jupiter.api.Test)9 java.util (java.util)8 Lists (com.google.common.collect.Lists)7 Map (java.util.Map)6 Transactional (org.springframework.transaction.annotation.Transactional)6