DocumentWriteSet writeset = docMgr.newWriteSet(); docMgr.write(writeset); docMgr.read("/generic/" + docId[0], rh); assertEquals("Size of the File /generic/" + docId[0], file1.length(), rh.get().length()); System.out.println(rh.get().getName() + ":" + rh.get().length() + "\n"); docMgr.read("/generic/foo.xml", rh); BufferedReader br = new BufferedReader(new FileReader(rh.get())); br.readLine(); assertEquals("xml document write difference", "<foo>This is so foo1</foo>", br.readLine()); docMgr.read("/generic/foo1.txt", rh); br.close(); br = new BufferedReader(new FileReader(rh.get())); assertEquals("txt document write difference", foo1, br.readLine()); br.close(); docMgr.read("/generic/dog.json", rh); br = new BufferedReader(new FileReader(rh.get())); assertEquals("Json document write difference", "{\"animal\":\"dog\", \"says\":\"woof\"}", br.readLine()); docMgr.delete(doc1, "/generic/foo.xml", "/generic/foo1.txt", "/generic/dog.json"); sh.close();
public DocumentMetadataHandle getMetadata(String uri) { return client.newDocumentManager().readMetadata(uri, new DocumentMetadataHandle()); }
protected DocumentPage getDocs(QueryBatch batch) { GenericDocumentManager docMgr = batch.getClient().newDocumentManager(); if ( view != null ) docMgr.setSearchView(view); if ( categories != null ) docMgr.setMetadataCategories(categories); if ( nonDocumentFormat != null ) docMgr.setNonDocumentFormat(nonDocumentFormat); if ( consistentSnapshot == true ) { return ((GenericDocumentImpl) docMgr).read( batch.getServerTimestamp(), transform, batch.getItems() ); } else { return docMgr.read( transform, batch.getItems() ); } }
private void writeRecords(Set<Object> idsToIgnore) { DocumentWriteSet set = mgr.newWriteSet(); Set<Object> recordIds = recordMap.keySet(); Set<Object> idsToRemove = new HashSet<>(); logger.debug("Writing set of documents"); mgr.write(set); if (logger.isDebugEnabled()) { logger.debug("Finished writing set of documents");
DocumentWriteSet writeset = docMgr.newWriteSet(); docMgr.write(writeset); DocumentPage page = docMgr.read("/generic/Pandakarlino.jpg", "/generic/dog.json", "/generic/foo1.txt", "/generic/foo.xml"); docMgr.readMetadata(rec.getUri(), mh); System.out.println(rec.getUri()); validateMetadata(mh);
protected String getModulesFile(String uri) { try { String contents = modMgr.read(uri).next().getContent(new StringHandle()).get(); return contents.replaceFirst("(\\(:|//)\\s+cache\\sbuster:.+\\n", ""); } catch (IllegalStateException e){ return null; } catch(Exception e) { e.printStackTrace(); } return null; }
docMgr.write( docId, new BytesHandle(content.getBytes(Charset.forName("UTF-8"))) ); docMgr.setMetadataCategories(Metadata.ALL); docMgr.writeMetadata(docId, new StringHandle().with(metadata)); DocumentMetadataPatchBuilder patchBldr = docMgr.newPatchBuilder(format); DocumentPatchHandle patchHandle = patchBldr .addCollection("/document/collection3") .build(); docMgr.patch(docId, patchHandle); String metadata = docMgr.readMetadata(docId, new StringHandle().withFormat(Format.XML)).get(); docMgr.delete(docId);
/** * @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; }
InputStreamHandle handle1 = new InputStreamHandle(fis); handle1.setFormat(Format.BINARY); docMgr.write("/binary4mbdoc", handle1); String query = "declare variable $myInteger as xs:integer external;" + "(fn:doc()/binary(),$myInteger,xdmp:database-name(xdmp:database()))"; long sizeOfBinary; try ( InputStreamHandle doc =docMgr.read("/binary4mbdoc",new InputStreamHandle()) ) { sizeOfBinary = doc.getByteLength();
@Test public void testRunFlow() throws SAXException, IOException, ParserConfigurationException, XMLStreamException { addStagingDocs(); installModules(); assertEquals(2, getStagingDocCount()); assertEquals(0, getFinalDocCount()); getHubFlowRunnerConfig(); Flow flow1 = fm.getFlow("test", "my-test-flow1"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow1) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); getHubAdminConfig(); assertEquals(2, getStagingDocCount()); assertEquals(2, getFinalDocCount()); assertXMLEqual(getXmlFromResource("flow-manager-test/harmonized/harmonized1.xml"), finalDocMgr.read("/employee1.xml").next().getContent(new DOMHandle()).get() ); assertXMLEqual(getXmlFromResource("flow-manager-test/harmonized/harmonized2.xml"), finalDocMgr.read("/employee2.xml").next().getContent(new DOMHandle()).get()); DocumentMetadataHandle metadata = finalDocMgr.readMetadata("/employee1.xml", new DocumentMetadataHandle()); DocumentMetadataHandle.DocumentPermissions permissions = metadata.getPermissions(); assertEquals( permissions.get("harmonized-reader").toString(), "[READ]", "Default permissions on harmonized documents should contain harmonized-reader/read"); assertEquals(permissions.get("harmonized-updater").toString(), "[UPDATE]", "Default permissions on harmonized documents should contain harmonized-updater/update"); }
@Override public void write(List<? extends String> items) throws Exception { if (logger.isInfoEnabled()) { logger.info("Deleting URIs: " + items); } client.newDocumentManager().delete(items.toArray(new String[] {})); }
HostInfo host = hostInfos[hostToUse]; DatabaseClient hostClient = host.client; BatchWriteSet batchWriteSet = new BatchWriteSet(this, hostClient.newDocumentManager().newWriteSet(), hostClient, getTransform(), getTemporalCollection()); batchWriteSet.setBatchNumber(batchNum);
RawStructuredQueryDefinition qd = queryMgr.newRawStructuredQueryDefinition(jh); System.out.println(jh.get().toString()); docMgr.setNonDocumentFormat(Format.JSON); JacksonHandle results = new JacksonHandle(); DocumentPage page = docMgr.search(qd, 1, results); DocumentMetadataHandle mh = new DocumentMetadataHandle(); while (count < 4) page = docMgr.search(qd, count, results); validateRecord(rec, Format.JSON); docMgr.readMetadata(rec.getUri(), mh); assertTrue("Records has permissions? ", mh.getPermissions().containsKey("flexrep-eval")); assertFalse("Record has collections ?", mh.getCollections().isEmpty());
queryMgr.newRawStructuredQueryDefinition(rh); DOMHandle dh = new DOMHandle(); DocumentPage page = docMgr.search(qd, 1, dh); DocumentMetadataHandle mh = new DocumentMetadataHandle(); while (count < 4) page = docMgr.search(qd, count, dh); validateRecord(rec, Format.JSON); docMgr.readMetadata(rec.getUri(), mh); assertTrue("Records has permissions? ", mh.getPermissions().containsKey("flexrep-eval")); assertFalse("Record has collections ?", mh.getCollections().isEmpty());
@Test public void testQueryBatcher() { client.newDocumentManager().writeAs(collection + "/test1.json", meta, "[true]"); client.newDocumentManager().writeAs(collection + "/test1.xml", meta, "<xml/>"); client.newDocumentManager().writeAs(collection + "/test1.txt", meta, "text"); assertEquals(3, client.newQueryManager().search(collectionQuery, new SearchHandle()).getTotalResults()); StructuredQueryDefinition query = collectionQuery; // begin copy from "Using QueryBatcher" in src/main/java/com/marklogic/datamovement/package-info.java QueryBatcher qhb = dataMovementManager.newQueryBatcher(query) .withBatchSize(1000) .withThreadCount(20) .withConsistentSnapshot() .onUrisReady(batch -> { for ( String uri : batch.getItems() ) { if ( uri.endsWith(".txt") ) { client.newDocumentManager().delete(uri); } } }) .onQueryFailure(queryBatchException -> queryBatchException.printStackTrace()); JobTicket ticket = dataMovementManager.startJob(qhb); qhb.awaitCompletion(); dataMovementManager.stopJob(ticket); // end copy from "Using QueryBatcher" in src/main/java/com/marklogic/datamovement/package-info.java SearchHandle results = client.newQueryManager().search(collectionQuery, new SearchHandle()); assertEquals(2, results.getTotalResults()); for ( MatchDocumentSummary match : results.getMatchResults() ) { assertTrue(match.getUri().matches(".*/test1.(json|xml)")); } }
DocumentWriteSet writeset = docMgr.newWriteSet(); docMgr.write(writeset); DocumentPage page = docMgr.read("/generic/Pandakarlino.jpg", "/generic/foo1.txt"); docMgr.readMetadata(rec.getUri(), mh); System.out.println(rec.getUri()); validateMetadata(mh); page = docMgr.read("/generic/dog.json"); DocumentRecord rec = page.next(); docMgr.readMetadata(rec.getUri(), mh); assertEquals("default quality", 10, mh.getQuality()); page = docMgr.read("/generic/foo.xml"); rec = page.next(); docMgr.readMetadata(rec.getUri(), mh); assertEquals("default quality", 0, mh.getQuality()); assertEquals("default collection must change", "[genericCollection]", mh.getCollections().toString());
protected Document getModulesDocument(String uri) { return modMgr.read(uri).next().getContent(new DOMHandle()).get(); }
protected void installModules(Map<String, String> modules) { DocumentWriteSet writeSet = modMgr.newWriteSet(); modules.forEach((String path, String localPath) -> { InputStreamHandle handle = new InputStreamHandle(HubTestBase.class.getClassLoader().getResourceAsStream(localPath)); String ext = FilenameUtils.getExtension(path); switch(ext) { case "xml": handle.setFormat(Format.XML); break; case "json": handle.setFormat(Format.JSON); break; default: handle.setFormat(Format.TEXT); } DocumentMetadataHandle permissions = new DocumentMetadataHandle() .withPermission(getHubAdminConfig().getHubRoleName(), DocumentMetadataHandle.Capability.EXECUTE, UPDATE, READ); writeSet.add(path, permissions, handle); }); modMgr.write(writeSet); clearFlowCache(); }
protected void installStagingDoc(String uri, DocumentMetadataHandle meta, String resource) { FileHandle handle = new FileHandle(getResourceFile(resource)); stagingDocMgr.write(uri, meta, handle); }
flowRunnerDocMgr.write("/input" + fileSuffix + "." + dataFormat.toString(), handle, serverTransform); if (finalCounts.stagingCount == 0) { fail("Should have thrown an exception."); String actual = flowRunnerDocMgr.read("/input" + fileSuffix + "." + dataFormat.toString()).next().getContent(new StringHandle()).get(); assertJsonEqual(expected, actual, false); } else { Document expected = getXmlFromResource("e2e-test/" + filename + "." + dataFormat.toString()); Document actual = flowRunnerDocMgr.read("/input" + fileSuffix + "." + dataFormat.toString()).next().getContent(new DOMHandle()).get(); assertXMLEqual(expected, actual);