protected ValidateQuery.ValidationBuilder validateQuery() { return ValidateQuery.validateQuery().printDetail(false); }
protected ValidationBuilder validateQuery() { return ValidateQuery.validateQuery().printDetail(print); }
protected ValidationBuilder validateQuery() { return ValidateQuery.validateQuery().printDetail(print); }
@Test public void shouldNotIndexNotQueryableDocument() throws Exception { federationManager.createProjection("/testRoot", SOURCE_NAME, MockConnector.NONT_QUERYABLE_DOC_LOCATION, "nonQueryableDoc"); Workspace workspace = session.getWorkspace(); workspace.reindex(); Node externalNode = assertNodeFound("/testRoot/nonQueryableDoc"); QueryManager queryManager = workspace.getQueryManager(); Query query = queryManager.createQuery("select * FROM [nt:base] WHERE [jcr:path] LIKE '/testRoot/nonQueryableDoc'", Query.JCR_SQL2); validateQuery().rowCount(0).validate(query, query.execute()); // change the document and re-run the query externalNode.setProperty("test", "a value"); session.save(); validateQuery().rowCount(0).validate(query, query.execute()); }
private void addNodeAndAssertIndexUsed(JcrRepository repository) throws RepositoryException, InterruptedException { JcrSession session = repository.login(); session.getRootNode().addNode("testRoot"); session.save(); Thread.sleep(100); String sql = "select [jcr:path] from [nt:unstructured] where [jcr:name] = 'testRoot'"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); ValidateQuery.validateQuery().rowCount(1).useIndex("nodesByName").validate(query, query.execute()); session.logout(); }
protected QueryResult assertJcrSql2Query( String sql, long expectedRowCount ) throws RepositoryException { Query query = session().getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); QueryResult results = query.execute(); printMessage(query.getStatement()); ValidateQuery.validateQuery().printDetail(print).rowCount(expectedRowCount).validate(query, results); return results; }
private RepositoryOperation reindexingExternalContentOperation() { return repository -> { JcrSession session = repository.login(); // sleep a bit to make sure reindexing completes Thread.sleep(300); try { AbstractJcrNode node = session.getNode("/fs2/file.txt"); String createdBy = node.getProperty("jcr:createdBy").getString(); assertNotNull(createdBy); JcrQueryManager jcrQueryManager = session.getWorkspace().getQueryManager(); Query query = jcrQueryManager.createQuery("select file.[jcr:path] from [nt:file] as file where file.[jcr:createdBy]='" + createdBy + "'", JcrQuery.JCR_SQL2); ValidateQuery.validateQuery() .useIndex("nodesByAuthor") .hasNodesAtPaths("/fs2/file.txt") .validate(query, query.execute()); session.getWorkspace().reindex(); ValidateQuery.validateQuery() .useIndex("nodesByAuthor") .hasNodesAtPaths("/fs2/file.txt") .validate(query, query.execute()); } finally { session.logout(); } }; }
@Test @FixFor("MODE-2644") public void shouldUseDynamicallyRegisteredIndexes() throws Exception { // clean the indexes TestingUtil.waitUntilFolderCleanedUp("target/startup_test_indexes"); startRunStop(this::registerIndexDefinitionAndCheckUsage, "config/repo-config-persistent-local-indexes.json"); startRunStop(repository -> { JcrSession session = repository.login(); String sql = "select [jcr:path] from [nt:unstructured] where testProp = 'test'"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); ValidateQuery.validateQuery().rowCount(1).useIndex("testProp").validate(query, query.execute()); session.logout(); }, "config/repo-config-persistent-local-indexes.json"); }
@FixFor( "MODE-2292" ) @Test public void shouldUseIndexesAfterRestarting() throws Exception { // clean the indexes TestingUtil.waitUntilFolderCleanedUp("target/startup_test_indexes"); startRunStop(this::addNodeAndAssertIndexUsed, "config/repo-config-persistent-local-indexes.json"); startRunStop(repository -> { JcrSession session = repository.login(); String sql = "select [jcr:path] from [nt:unstructured] where [jcr:name] = 'testRoot'"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); ValidateQuery.validateQuery().rowCount(1).useIndex("nodesByName").validate(query, query.execute()); session.logout(); }, "config/repo-config-persistent-local-indexes.json"); }
String sql = "select [jcr:path] from [nt:unstructured] where testProp = 'test'"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); ValidateQuery.validateQuery().rowCount(1).useIndex("testProp").validate(query, query.execute()); session.logout();
@Test @FixFor( "MODE-2393 ") public void reindexingLocalProviderShouldRemoveExistingDataFirst() throws Exception { // clean the indexes TestingUtil.waitUntilFolderCleanedUp("target/startup_test_indexes"); startRunStop(this::addNodeAndAssertIndexUsed, "config/repo-config-persistent-local-indexes.json"); startRunStop(repository -> { JcrSession session = repository.login(); // force a re-index of the entire workspace - this should clear the existing indexes first session.getWorkspace().reindex(); // then force a reindex of a certain path session.getWorkspace().reindex("/testRoot"); //then check that still only 1 node is returned String sql = "select [jcr:path] from [nt:unstructured] where [jcr:name] = 'testRoot'"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); ValidateQuery.validateQuery().rowCount(1).useIndex("nodesByName").validate(query, query.execute()); }, "config/repo-config-persistent-local-indexes.json"); }
@Test @FixFor( "MODE-2583 ") public void shouldNotUseIndexesWhichHaveBeenRemovedFromConfiguration() throws Exception { // clean the indexes TestingUtil.waitUntilFolderCleanedUp("target/startup_test_indexes"); RepositoryConfiguration configuration = startRunStop(this::addNodeAndAssertIndexUsed, "config/repo-config-persistent-local-indexes.json"); MutableDocument configDoc = configuration.edit().asMutableDocument(); configDoc.remove(RepositoryConfiguration.FieldName.INDEXES); TestingUtil.waitUntilFolderCleanedUp("target/startup_test_indexes"); startRunStop(repository -> { JcrSession session = repository.login(); // force a re-index of the entire workspace session.getWorkspace().reindex(); //then check that still only 1 node is returned String sql = "select [jcr:path] from [nt:unstructured] where [jcr:name] = 'testRoot'"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); ValidateQuery.validateQuery().rowCount(1).useNoIndexes().validate(query, query.execute()); session.logout(); }, new RepositoryConfiguration(configDoc, "updated_config")); }