/** * Add the project field to the source map. * * @param document * @param project */ protected void addProject(JsonObject document, Project project) { if (project != null) { Map<String, String> projectFields = new HashMap<>(); projectFields.put("name", project.getName()); projectFields.put("uuid", project.getUuid()); document.put("project", projectFields); } }
public static Project mockProject(User user) { Project project = mock(Project.class); when(project.getUuid()).thenReturn(PROJECT_DEMO2_UUID); when(project.getName()).thenReturn("dummyProject"); when(project.getCreator()).thenReturn(user); when(project.getCreationTimestamp()).thenReturn(TIMESTAMP_OLD); when(project.getEditor()).thenReturn(user); when(project.getLastEditedTimestamp()).thenReturn(TIMESTAMP_NEW); when(project.getRolesWithPerm(GraphPermission.READ_PERM)).thenReturn(createEmptyTraversal()); when(project.getElementVersion()).thenReturn(UUID_1); return project; }
@Override public Set<String> filterUnknownIndices(Set<String> indices) { return db.tx(() -> { Set<String> activeIndices = new HashSet<>(); for (Project project : boot.meshRoot().getProjectRoot().findAll()) { activeIndices.add(Tag.composeIndexName(project.getUuid())); } return indices.stream() .filter(i -> i.startsWith(getType() + "-")) .filter(i -> !activeIndices.contains(i)) .collect(Collectors.toSet()); }); }
@Override public Set<String> filterUnknownIndices(Set<String> indices) { return db.tx(() -> { Set<String> activeIndices = new HashSet<>(); for (Project project : boot.meshRoot().getProjectRoot().findAll()) { activeIndices.add(TagFamily.composeIndexName(project.getUuid())); } return indices.stream() .filter(i -> i.startsWith(getType())) .filter(i -> !activeIndices.contains(i)) .collect(Collectors.toSet()); }); }
public String generateVersion(Tag tag) { Project project = tag.getProject(); TagFamily tagFamily = tag.getTagFamily(); StringBuilder builder = new StringBuilder(); builder.append(tag.getElementVersion()); builder.append("|"); builder.append(project.getUuid() + project.getName()); builder.append("|"); builder.append(tagFamily.getElementVersion()); // No need to add users since the creator/editor edge affects the tag version return ETag.hash(builder.toString()); }
public String generateVersion(NodeGraphFieldContainer container, String branchUuid, ContainerType type) { Node node = container.getParentNode(); Project project = node.getProject(); StringBuilder builder = new StringBuilder(); builder.append(container.getElementVersion()); builder.append("|"); builder.append(branchUuid); builder.append("|"); builder.append(type.name()); builder.append("|"); builder.append(project.getUuid() + project.getName()); builder.append("|"); builder.append(node.getElementVersion()); return ETag.hash(builder.toString()); }
public String generateVersion(TagFamily tagFamily) { Project project = tagFamily.getProject(); StringBuilder builder = new StringBuilder(); builder.append(tagFamily.getElementVersion()); builder.append("|"); tagFamily.findAll().forEach(tag -> { builder.append(tag.getElementVersion()); builder.append("|"); }); builder.append(project.getUuid() + project.getName()); return ETag.hash(builder.toString()); }
@Override public Set<String> getSelectedIndices(InternalActionContext ac) { return db.tx(() -> { Project project = ac.getProject(); if (project != null) { return Collections.singleton(TagFamily.composeIndexName(project.getUuid())); } else { return getIndices().keySet(); } }); }
@Override public Set<String> getSelectedIndices(InternalActionContext ac) { return db.tx(() -> { Project project = ac.getProject(); if (project != null) { return Collections.singleton(Tag.composeIndexName(project.getUuid())); } else { return getIndices().keySet(); } }); }
@Override public Completable store(TagFamily tagFamily, UpdateDocumentEntry entry) { entry.getContext().setProjectUuid(tagFamily.getProject().getUuid()); return super.store(tagFamily, entry); }
@Override public Observable<IndexBulkEntry> storeForBulk(TagFamily tagFamily, UpdateDocumentEntry entry) { entry.getContext().setProjectUuid(tagFamily.getProject().getUuid()); return super.storeForBulk(tagFamily, entry); }
@Override public Completable store(Tag tag, UpdateDocumentEntry entry) { entry.getContext().setProjectUuid(tag.getProject().getUuid()); return super.store(tag, entry); }
@Override public Observable<IndexBulkEntry> storeForBulk(Tag tag, UpdateDocumentEntry entry) { entry.getContext().setProjectUuid(tag.getProject().getUuid()); return super.storeForBulk(tag, entry); }
/** * Add a new node index to the search database and construct the index name using the provided values. See * {@link NodeContainerEntry#composeIndexName(String, String, String, ContainerType)} for details. * * @param project * @param branch * @param version * @param type * @return Fluent API */ default SearchQueueBatch addNodeIndex(Project project, Branch branch, SchemaContainerVersion version, ContainerType type) { return createNodeIndex(project.getUuid(), branch.getUuid(), version.getUuid(), type, version.getSchema()); }
@Override public Map<String, IndexInfo> getIndices() { return db.tx(() -> { Map<String, IndexInfo> indexInfo = new HashMap<>(); ProjectRoot projectRoot = boot.meshRoot().getProjectRoot(); for (Project project : projectRoot.findAll()) { String indexName = Tag.composeIndexName(project.getUuid()); IndexInfo info = new IndexInfo(indexName, null, getMappingProvider().getMapping(), "tag"); indexInfo.put(indexName, info); } return indexInfo; }); }
@Override public Map<String, IndexInfo> getIndices() { return db.tx(() -> { ProjectRoot root = boot.meshRoot().getProjectRoot(); Map<String, IndexInfo> indexInfo = new HashMap<>(); for (Project project : root.findAll()) { String indexName = TagFamily.composeIndexName(project.getUuid()); IndexInfo info = new IndexInfo(indexName, null, getMappingProvider().getMapping(), "tagFamily"); indexInfo.put(indexName, info); } return indexInfo; }); }
/** * Deletes the container for the index in which it should reside. * * @param container * @param branchUuid * @param type * @return */ private Completable deleteContainer(NodeGraphFieldContainer container, String branchUuid, ContainerType type) { String projectUuid = container.getParentNode().getProject().getUuid(); return searchProvider.deleteDocument(container.getIndexName(projectUuid, branchUuid, type), container.getDocumentId()); }
/** * Assert that the tag family was stored in the index. * * @param tagfamily * @return Fluent API */ public DummySearchProviderAssert stored(TagFamily tagfamily) { assertThat(actual).hasStore(TagFamily.composeIndexName(tagfamily.getProject().getUuid()), TagFamily.composeDocumentId(tagfamily.getUuid())); return this; }
/** * Assert that the tag family was stored in the index. * * @param tag * @return Fluent API */ public DummySearchProviderAssert stored(Tag tag) { assertThat(actual).hasStore(Tag.composeIndexName(tag.getProject().getUuid()), Tag.composeDocumentId(tag.getUuid())); return this; }
@Override public Completable syncIndices() { return Completable.defer(() -> { return db.tx(() -> { ProjectRoot root = boot.meshRoot().getProjectRoot(); Set<Completable> actions = new HashSet<>(); SyncMetric metric = new SyncMetric(getType()); for (Project project : root.findAll()) { String uuid = project.getUuid(); actions.add(diffAndSync(Tag.composeIndexName(uuid), uuid, metric)); } return Completable.merge(actions); }); }); }