private void receiveCollectionsImpl(Document document) { DocumentCollections collections = getCollections(); collections.clear(); if (document == null) return; NodeList collectionsIn = document.getElementsByTagNameNS(REST_API_NS, "collection"); int collectionsInLength = collectionsIn.getLength(); for (int i=0; i < collectionsInLength; i++) { collections.add(collectionsIn.item(i).getTextContent()); } } private void receivePermissionsImpl(Document document) {
private void receiveCollectionsImpl(Document document) { DocumentCollections collections = getCollections(); collections.clear(); if (document == null) return; NodeList collectionsIn = document.getElementsByTagNameNS(REST_API_NS, "collection"); for (int i=0; i < collectionsIn.getLength(); i++) { collections.add(collectionsIn.item(i).getTextContent()); } } private void receivePermissionsImpl(Document document) {
@Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { String currentDir = dir.normalize().toAbsolutePath().toString(); if (isMappingDir(dir, mappingPath.toAbsolutePath())) { Modules modules = new MappingDefModulesFinder().findModules(dir.toString()); DocumentMetadataHandle meta = new DocumentMetadataHandle(); meta.getCollections().add("http://marklogic.com/data-hub/mappings"); documentPermissionsParser.parsePermissions(hubConfig.getModulePermissions(), meta.getPermissions()); for (Resource r : modules.getAssets()) { if (forceLoad || modulesManager.hasFileBeenModifiedSinceLastLoaded(r.getFile())) { InputStream inputStream = r.getInputStream(); StringHandle handle = new StringHandle(IOUtils.toString(inputStream)); inputStream.close(); finalMappingDocumentWriteSet.add("/mappings/" + r.getFile().getParentFile().getName() + "/" + r.getFilename(), meta, handle); stagingMappingDocumentWriteSet.add("/mappings/" + r.getFile().getParentFile().getName() + "/" + r.getFilename(), meta, handle); modulesManager.saveLastLoadedTimestamp(r.getFile(), new Date()); } } return FileVisitResult.CONTINUE; } else { return FileVisitResult.CONTINUE; } }
meta.getCollections().add(ENTITY); installStagingDoc("/staged.json", meta, "flow-manager/staged.json");
jobInstanceMetadata.getCollections().add(COLLECTION_JOB_INSTANCE);
metadataHandle.getCollections().add(collection); String filename = "mapping/staging-es"; if(flowName.contains("extranodes")) {
meta.getCollections().add(ENTITY); installStagingDoc("/staged.json", meta, "flow-manager/staged.json");
Modules modules = new EntityDefModulesFinder().findModules(dir.toString()); DocumentMetadataHandle meta = new DocumentMetadataHandle(); meta.getCollections().add("http://marklogic.com/entity-services/models"); documentPermissionsParser.parsePermissions(hubConfig.getModulePermissions(), meta.getPermissions()); for (Resource r : modules.getAssets()) {
metadataHandle.getCollections().add(collection); String filename = "staged"; if (useEs) {
meta.getCollections().add(ENTITY); installStagingDoc("/staged.json", meta, "flow-manager/staged.json");
@Test public void runHarmonizeNoOptions() throws IOException, InterruptedException { deleteProjectDir(); createProjectDir(); //envConfig.setInitialized(true); //envConfig.setMlSettings(HubConfigBuilder.newHubConfigBuilder(PROJECT_PATH).withPropertiesFromEnvironment().build()); Path projectDir = Paths.get(".", PROJECT_PATH); scaffolding.createFlow(ENTITY, "sjs-json-harmonization-flow", FlowType.HARMONIZE, CodeFormat.JAVASCRIPT, DataFormat.JSON, false); Path harmonizeDir = projectDir.resolve("plugins/entities/" + ENTITY + "/harmonize"); FileUtil.copy(getResourceStream("flow-manager/sjs-harmonize-flow/headers.sjs"), harmonizeDir.resolve("sjs-json-harmonization-flow/headers.sjs").toFile()); installUserModules(getHubAdminConfig(), true); DocumentMetadataHandle meta = new DocumentMetadataHandle(); meta.getCollections().add(ENTITY); installStagingDoc("/staged.json", meta, "flow-manager/staged.json"); //envConfig.setMlSettings(HubConfigBuilder.newHubConfigBuilder(PROJECT_PATH).withPropertiesFromEnvironment().build()); setEnvConfig(); ObjectMapper mapper = new ObjectMapper(); JsonNode body = mapper.readTree("{\"batchSize\":1, \"threadCount\": 1}"); ResponseEntity<?> responseEntity = ec.runHarmonizeFlow(ENTITY, "sjs-json-harmonization-flow", body); assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); // document takes a moment to arrive. Thread.sleep(3000); DocumentRecord doc = finalDocMgr.read("/staged.json").next(); JsonNode root = doc.getContent(new JacksonHandle()).get(); JsonNode env = root.path("envelope"); JsonNode headers = env.path("headers"); JsonNode optionNode = headers.path("test-option"); assertTrue(optionNode.isMissingNode()); }
jobExecutionMetadata.getCollections().add(COLLECTION_JOB_INSTANCE); xmlDocMgr.write(desc, jobExecutionMetadata, handle); logger.info("update JobExecution:" + uri + "," + desc.getVersion());
@Override public void saveJobExecution(JobExecution jobExecution) { validateJobExecution(jobExecution); jobExecution.incrementVersion(); jobExecution.setId(incrementer.nextLongValue()); XMLDocumentManager xmlDocMgr = databaseClient.newXMLDocumentManager(); String uri = SPRING_BATCH_DIR + jobExecution.getJobInstance().getId().toString() + ".xml"; DocumentDescriptor desc = xmlDocMgr.exists(uri); JAXBHandle<MarkLogicJobInstance> handle = new JAXBHandle<>(jaxbContext()); xmlDocMgr.read(uri, handle); MarkLogicJobInstance mji = handle.get(); mji.addJobExecution(jobExecution); //Set document metadata DocumentMetadataHandle jobInstanceMetadata = new DocumentMetadataHandle(); jobInstanceMetadata.getCollections().add(COLLECTION_JOB_INSTANCE); xmlDocMgr.write(desc, jobInstanceMetadata, handle); logger.info("insert JobExecution:" + uri + "," + desc.getVersion()); }
private void addStagingDocs() { clearDatabases(HubConfig.DEFAULT_STAGING_NAME, HubConfig.DEFAULT_FINAL_NAME); DocumentMetadataHandle meta = new DocumentMetadataHandle(); meta.getCollections().add("tester"); meta.getPermissions().add(getHubAdminConfig().getHubRoleName(), READ, UPDATE, EXECUTE); installStagingDoc("/employee1.xml", meta, "flow-manager-test/input/employee1.xml"); installStagingDoc("/employee2.xml", meta, "flow-manager-test/input/employee2.xml"); }
/** * @param moduleName appended to the baseUri to determine the model definition URI * @param modelDefinition JSON or XML * @return */ public String loadModel(String moduleName, String modelDefinition) { GenericDocumentManager mgr = client.newDocumentManager(); DocumentMetadataHandle dmh = new DocumentMetadataHandle(); dmh.getCollections().add(modelCollection); String modelUri = baseUri + moduleName; mgr.write(modelUri, dmh, new BytesHandle(modelDefinition.getBytes())); return modelUri; }
private void addFinalDocs() { clearDatabases(HubConfig.DEFAULT_STAGING_NAME, HubConfig.DEFAULT_FINAL_NAME); DocumentMetadataHandle meta = new DocumentMetadataHandle(); meta.getCollections().add("tester"); meta.getPermissions().add(getHubAdminConfig().getHubRoleName(), READ, UPDATE, EXECUTE); installFinalDoc("/employee1.xml", meta, "flow-manager-test/input/employee1.xml"); installFinalDoc("/employee2.xml", meta, "flow-manager-test/input/employee2.xml"); }