public DocumentMetadataHandle setMetadata() { // create and initialize a handle on the metadata DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); metadataHandle.getCollections().addAll("my-collection1", "my-collection2"); metadataHandle.getPermissions().add("app-user", Capability.UPDATE, Capability.READ); metadataHandle.getProperties().put("reviewed", true); metadataHandle.getProperties().put("myString", "foo"); metadataHandle.getProperties().put("myInteger", 10); metadataHandle.getProperties().put("myDecimal", 34.56678); metadataHandle.getProperties().put("myCalendar", Calendar.getInstance().get(Calendar.YEAR)); metadataHandle.setQuality(23); return metadataHandle; }
public DocumentMetadataHandle setUpdatedMetadataCollections() { // create and initialize a handle on the metadata DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle().withCollections("my-collection3", "my-collection4"); // metadataHandle.getCollections().addAll("my-collection1","my-collection2"); metadataHandle.getPermissions().add("app-user", Capability.UPDATE, Capability.READ); metadataHandle.getProperties().put("reviewed", true); metadataHandle.getProperties().put("myString", "foo"); metadataHandle.getProperties().put("myInteger", 10); metadataHandle.getProperties().put("myDecimal", 34.56678); metadataHandle.getProperties().put("myCalendar", Calendar.getInstance().get(Calendar.YEAR)); metadataHandle.setQuality(23); return metadataHandle; }
private void sendQualityImpl(XMLStreamWriter serializer) throws XMLStreamException { serializer.writeStartElement("rapi", "quality", REST_API_NS); serializer.writeCharacters(String.valueOf(getQuality())); serializer.writeEndElement(); } static private class ValueSerializer implements ValueConverter.ValueProcessor {
@Override public DocumentMetadataWriteHandle getMetadata() { DocumentMetadataHandle h = new DocumentMetadataHandle(); if (collections != null) { h.withCollections(collections); } if (permissions != null) { for (String role : permissions.keySet()) { h.withPermission(role, permissions.get(role)); } } return h; }
protected DocumentMetadataHandle buildMetadata() { DocumentMetadataHandle h = new DocumentMetadataHandle(); h = h.withCollections(collections); if (permissions != null) { String[] array = permissions.split(","); for (int i = 0; i < array.length; i += 2) { h.getPermissions().add(array[i], Capability.valueOf(array[i + 1].toUpperCase())); } } return h; }
/** * @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; }
DocumentMetadataHandle defaultMetadata1 = new DocumentMetadataHandle() .withQuality(1); DocumentMetadataHandle defaultMetadata2 = new DocumentMetadataHandle() .withQuality(2); DocumentMetadataHandle docSpecificMetadata = new DocumentMetadataHandle() .withCollections("mySpecificCollection"); DocumentMetadataHandle mh = new DocumentMetadataHandle(); rec = page.next(); jdm.readMetadata(rec.getUri(), mh); validateDefaultMetadata(mh); assertEquals("default quality", 0, mh.getQuality()); rec = page.next(); jdm.readMetadata(rec.getUri(), mh); System.out.print(mh.getCollections().isEmpty()); assertEquals("default quality", 1, mh.getQuality()); assertTrue("default collections reset", mh.getCollections().isEmpty()); rec = page.next(); jdm.readMetadata(rec.getUri(), mh); assertEquals("default quality", 0, mh.getQuality()); assertEquals("default collection must change", "[mySpecificCollection]", mh.getCollections().toString()); new DocumentMetadataHandle()); System.out.println("doc3 quality: Expected=0, Actual=" + doc3Metadata.getPermissions()); System.out.print("doc3 collections: Expected: myCollection, Actual=");
@Override public void write(T entity, Transaction transaction, String... collections) { if ( entity == null ) return; JacksonDatabindHandle<T> contentHandle = new JacksonDatabindHandle<>(entity); contentHandle.setMapper(objectMapper); DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); metadataHandle = metadataHandle.withCollections(entityClass.getName()); if ( collections != null && collections.length > 0 ) { metadataHandle = metadataHandle.withCollections(collections); } DocumentWriteSet writeSet = docMgr.newWriteSet(); writeSet.add(getDocumentUri(entity), metadataHandle, contentHandle); try { docMgr.write(writeSet, transaction); } catch(MarkLogicIOException e) { checkForEmptyBeans(e); throw e; } }
DocumentMetadataHandle mh1 = new DocumentMetadataHandle(); DocumentPage page = docMgr.read("/generic/Sega.jpg"); DocumentRecord rec = page.next(); docMgr.readMetadata(rec.getUri(), mh1); assertEquals("default quality", 0, mh1.getQuality()); assertTrue("Properties contains value 19", mh1.getProperties().containsValue("19")); assertEquals("default quality", 10, mh1.getQuality()); String expectedCollections = "size:1|http://permission-collections/|"; String actualCollections = getDocumentCollectionsString(mh1.getCollections()); docMgr.readMetadata(rec.getUri(), mh1); expectedCollections = "size:1|http://permission-collections/|"; actualCollections = getDocumentCollectionsString(mh1.getCollections()); assertEquals("default quality", 0, mh1.getQuality()); String actualPermissions = mh1.getPermissions().toString(); System.out.println(actualPermissions); assertTrue("Default permissions must contain flexrep-eval=[READ]", rec = page.next(); docMgr.readMetadata(rec.getUri(), mh1); assertEquals("default quality", 0, mh1.getQuality()); assertEquals("default collection must change", "[http://Json-Uri-generic-collections/]", mh1.getCollections() .toString()); sh.close();
public void validateDefaultMetadata(DocumentMetadataHandle mh) { // get meta-data values DocumentProperties properties = mh.getProperties(); DocumentPermissions permissions = mh.getPermissions(); DocumentCollections collections = mh.getCollections(); // Properties String actualProperties = getDocumentPropertiesString(properties); boolean result = actualProperties.contains("size:0|"); System.out.println(actualProperties + result); assertTrue("Document default last modified properties count1?", result); // Permissions String actualPermissions = getDocumentPermissionsString(permissions); assertTrue("Document permissions difference in size value", actualPermissions.contains("size:4")); // assertTrue("Document permissions difference in flexrep-eval permission", // actualPermissions.contains("flexrep-eval:[READ]")); assertTrue("Document permissions difference in rest-reader permission", actualPermissions.contains("rest-reader:[READ]")); assertTrue("Document permissions difference in rest-writer permission", actualPermissions.contains("rest-writer:[UPDATE]")); assertTrue("Document permissions difference in harmonized-updater permission", actualPermissions.contains("harmonized-updater:[UPDATE]")); assertTrue("Document permissions difference in harmonized-reader permission", actualPermissions.contains("harmonized-reader:[READ]")); // Collections String expectedCollections = "size:0|"; String actualCollections = getDocumentCollectionsString(collections); assertEquals("Document collections difference", expectedCollections, actualCollections); }
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"); }
public void validateDefaultMetadata(DocumentMetadataHandle mh) { // get metadata values DocumentPermissions permissions = mh.getPermissions(); DocumentCollections collections = mh.getCollections(); // Permissions String actualPermissions = getDocumentPermissionsString(permissions); System.out.println(actualPermissions); assertTrue("Document permissions difference in size value", actualPermissions.contains("size:5")); assertTrue("Document permissions difference in flexrep-eval permission", actualPermissions.contains("flexrep-eval:[READ]")); assertTrue("Document permissions difference in rest-reader permission", actualPermissions.contains("rest-reader:[READ]")); assertTrue("Document permissions difference in rest-writer permission", actualPermissions.contains("rest-writer:[UPDATE]")); assertTrue("Document permissions difference in harmonized-updater permission", actualPermissions.contains("harmonized-updater:[UPDATE]")); assertTrue("Document permissions difference in harmonized-reader permission", actualPermissions.contains("harmonized-reader:[READ]")); // Collections String actualCollections = getDocumentCollectionsString(collections); assertTrue("Document collections difference in size value", actualCollections.contains("size:1")); assertTrue("my-collection1 not found", actualCollections.contains("http://permission-collections/")); }
private void sendCollectionsImpl(XMLStreamWriter serializer) throws XMLStreamException { if ( getCollections() == null || getCollections().size() == 0 ) return; serializer.writeStartElement("rapi", "collections", REST_API_NS); for (String collection: getCollections()) { serializer.writeStartElement("rapi", "collection", REST_API_NS); serializer.writeCharacters(collection); serializer.writeEndElement(); } serializer.writeEndElement(); } private void sendPermissionsImpl(XMLStreamWriter serializer) throws XMLStreamException {
/** * Locally adds the role and its capabilities to the current * permissions for the document. * @param role the role for users permitted to access the document * @param capabilities the permissions to be granted to users with the role * @return the document metadata handle */ public DocumentMetadataHandle withPermission( String role, Capability... capabilities ) { getPermissions().add(role, capabilities); return this; }
public DocumentMetadataHandle setUpdatedMetadataProperties() { // create and initialize a handle on the metadata DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); metadataHandle.getProperties().put("reviewed", false); metadataHandle.getProperties().put("myString", "bar"); metadataHandle.getProperties().put("myInteger", 20); metadataHandle.getProperties().put("myDecimal", 3459.012678); metadataHandle.getProperties().put("myCalendar", Calendar.getInstance().get(Calendar.YEAR)); metadataHandle.setQuality(12); return metadataHandle; }
public void runWithWriteAndQueryBatcher(FilteredForestConfiguration ffg) { String collection = "testAgainstRealHosts_" + new Random().nextInt(10000); DocumentMetadataHandle meta6 = new DocumentMetadataHandle() .withCollections(collection) .withQuality(0);
/** * TODO Only adapts collections, quality, format, and permissions so far. * * @param handle * @return */ protected ContentCreateOptions adaptMetadata(DocumentMetadataWriteHandle handle) { ContentCreateOptions options = new ContentCreateOptions(); if (handle instanceof DocumentMetadataHandle) { DocumentMetadataHandle metadata = (DocumentMetadataHandle) handle; options.setQuality(metadata.getQuality()); options.setCollections(metadata.getCollections().toArray(new String[]{})); adaptPermissions(options, metadata); adaptFormat(options, metadata); } else { logger.warn("Only supports DocumentMetadataHandle; unsupported metadata class: " + handle.getClass().getName()); } return options; }
@Test public void testJSONMetadataQName() throws KeyManagementException, NoSuchAlgorithmException, JAXBException, IOException { System.out.println("Running testJSONMetadataQName"); String filename = "myJSONFile.json"; DatabaseClient client = getDatabaseClient("rest-writer", "x", getConnType()); // create and initialize a handle on the metadata DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); // put metadata metadataHandle.getProperties().put(new QName("http://www.example.com", "foo"), "bar"); // write the doc with the metadata writeDocumentUsingOutputStreamHandle(client, filename, "/write-json-outputstreamhandle-metadata/", metadataHandle, "JSON"); // create handle to read metadata DocumentMetadataHandle readMetadataHandle = new DocumentMetadataHandle(); // read metadata readMetadataHandle = readMetadataFromDocument(client, "/write-json-outputstreamhandle-metadata/" + filename, "JSON"); // get metadata values DocumentProperties properties = readMetadataHandle.getProperties(); // Properties String expectedProperties = "size:1|{http://www.example.com}foo:bar|"; String actualProperties = getDocumentPropertiesString(properties); System.out.println(actualProperties); assertEquals("Document properties difference", expectedProperties, actualProperties); // release the client client.release(); }
"</rapi:metadata>"; DocumentMetadataHandle metadataH = new DocumentMetadataHandle(); beforeStr = metadataText; before = metadataText.getBytes(); metadataH.fromBuffer(before); after = metadataH.toBuffer(); assertNotNull("DocumentMetadata after",after); String afterStr = new String(after);
@Override protected void processProperties(DocumentFile documentFile, Properties properties) { String name = documentFile.getFile().getName(); if (properties.containsKey(name)) { String value = properties.getProperty(name); documentFile.getDocumentMetadata().withCollections(value.split(",")); } } }