Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Stardust/Knowledge Base/Java API/Document Management"

m (Corrected indentation)
(Added sample code for 'Retrieving Contents of a Document Version')
Line 1: Line 1:
 
== '''Updating a document'''  ==
 
== '''Updating a document'''  ==
  
<u>'''Scenario:'''</u>&nbsp; The document was created using DocumentManagementService’s '''createDocument() '''method and then how to update a document if we pass the updated byte[] of the same document.  
+
==== <u>'''Scenario:'''</u>&nbsp; The document was created using DocumentManagementService’s '''createDocument() '''method and then how to update a document if we pass the updated byte[] of the same document. ====
  
 
The sample code would look like:<br>
 
The sample code would look like:<br>
Line 98: Line 98:
  
 
<br>Id of CREATED Document is&nbsp;: {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a<br>Description from CREATED Document&nbsp;: This is a txt document.<br>Content of CREATED Document&nbsp;: These are the contents of Sample File1.<br>======================================================<br>Id of UPDATED Document is&nbsp;: {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a<br>======================================================<br>Id of Fetched Document is&nbsp;: {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a<br>Description from Fetched Document&nbsp;: This is the UPDATED Description of the document<br>Contents of UPDATED/Fetched Document&nbsp;: These are the contents of Sample File1.<br>
 
<br>Id of CREATED Document is&nbsp;: {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a<br>Description from CREATED Document&nbsp;: This is a txt document.<br>Content of CREATED Document&nbsp;: These are the contents of Sample File1.<br>======================================================<br>Id of UPDATED Document is&nbsp;: {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a<br>======================================================<br>Id of Fetched Document is&nbsp;: {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a<br>Description from Fetched Document&nbsp;: This is the UPDATED Description of the document<br>Contents of UPDATED/Fetched Document&nbsp;: These are the contents of Sample File1.<br>
 +
 +
&nbsp;
 +
 +
&nbsp;
 +
 +
== '''Retrieve Contents of a Document Revision'''  ==
 +
 +
==== '''Scenario:'''&nbsp;There are 'n' number of versions of a document in the repository. Now how&nbsp;to retrieve the contents of a particular revision of&nbsp;that document. ====
 +
 +
&nbsp;
 +
<pre>package com.sungard.bootcamp.client;
 +
import java.io.File;
 +
import java.io.IOException;
 +
import java.util.HashMap;
 +
import java.util.List;
 +
import java.util.Map;
 +
import ag.carnot.workflow.runtime.DmsUtils;
 +
import ag.carnot.workflow.runtime.Document;
 +
import ag.carnot.workflow.runtime.DocumentInfo;
 +
import ag.carnot.workflow.runtime.DocumentManagementService;
 +
import ag.carnot.workflow.runtime.ServiceFactory;
 +
import ag.carnot.workflow.runtime.ServiceFactoryLocator;
 +
import ag.carnot.workflow.runtime.beans.removethis.SecurityProperties;</pre><pre>public class DMSClient {
 +
public static void main(String[] args) {
 +
// Obtain a reference to the ServiceFactory
 +
ServiceFactory sf = getServiceFactory(null, null, null, "motu", "motu");
 +
DocumentManagementService dmsService = sf.getDocumentManagementService();
 +
// pass the documentId to get the document versions of that document
 +
List&lt;Document&gt; list = dmsService.getDocumentVersions("{jcrUuid}05044280-8411-4fd8-8927-99b23560e4c3");
 +
for(int i=0;i&lt;list.size();i++){
 +
Document document = (Document)list.get(i);
 +
System.out.println("DocumentID :: " + document.getId());
 +
System.out.println("Document RevisionId :: " +document.getRevisionId());
 +
System.out.println("Document RevisionName :: "+ document.getRevisionName());
 +
System.out.println("Document Contents :: " + new String(
 +
dmsService.retrieveDocumentContent(document.getRevisionId())));
 +
}
 +
}
 +
 +
// Return ServiceFactory
 +
private static ServiceFactory getServiceFactory(String partition,
 +
String domain, String realm, String user, String password) {
 +
Map properties = new HashMap();
 +
properties.put(SecurityProperties.CRED_PARTITION, partition);
 +
properties.put(SecurityProperties.CRED_DOMAIN, domain);
 +
properties.put(SecurityProperties.CRED_REALM, realm);
 +
return ServiceFactoryLocator.get(user, password, properties);
 +
}
 +
}
 +
</pre>

Revision as of 04:32, 30 November 2011

Updating a document

Scenario:  The document was created using DocumentManagementService’s createDocument() method and then how to update a document if we pass the updated byte[] of the same document.

The sample code would look like:

public class DMSClient {
public static void main(String[] args) {

// Obtain a reference to the ServiceFactory
ServiceFactory sf = getServiceFactory(null, null, null, "motu", "motu");
DocumentManagementService dms = sf.getDocumentManagementService();
Document doc = createDoc(dms, new File("D:/SampleFile1.txt"));

System.out.println("Id of CREATED Document is : " + (doc).getId());
System.out.println("Description from CREATED Document : " + doc.getDescription()); 
System.out.println("Content of CREATED Document : " + new String (dms.retrieveDocumentContent(doc.getId())));
System.out.println("======================================================");

Document updatedDoc = updateDoc(dms, doc);
System.out.println("Id of UPDATED Document is : "+ (updatedDoc).getId()); 
System.out.println("======================================================");

Document fetchedDocument = dms.getDocument(updatedDoc.getId());
System.out.println("Id of Fetched Document is : " + fetchedDocument.getId());
System.out.println("Description from Fetched Document : "+ fetchedDocument.getDescription()); 
System.out.println("Contents of UPDATED/Fetched Document : " + 
                                         new String (dms.retrieveDocumentContent(fetchedDocument.getId())));
}

private static Document createDoc(DocumentManagementService dms, File file) {
DocumentInfo documentInfo = constructDocInfo(file);
try {
byte[] documentContent = FileUploadUtils.getBytesFromFile(file); 
return (dms.createDocument("/", documentInfo, documentContent, null));
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
return null;

}

private static Document updateDoc(DocumentManagementService dms, Document doc) {
doc.setDescription("This is the UPDATED Description of the document");
return (dms.updateDocument(doc, readFileContent(), "UTF-8", true,"TOBEREVISED", false));
}

private static DocumentInfo constructDocInfo(File file) {
DocumentInfo documentInfo = DmsUtils.createDocumentInfo(file.getName());
documentInfo.setContentType("text/plain");
documentInfo.setDescription("This is a txt document.");
return documentInfo;
}


// Return ServiceFactory
private static ServiceFactory getServiceFactory(String partition,String domain, String realm, String user, String password) {
Map properties = new HashMap();
properties.put("partition", partition);
properties.put("domain", domain);
properties.put("realm", realm);
return ServiceFactoryLocator.get(user, password, properties);
}


private static byte[] readFileContent() {
byte[] bytes = null;
try {
File file = new File("D:/SampleFile1.txt");
// File length
int size = (int) file.length();
if (size > Integer.MAX_VALUE) {
System.out.println("File is to larger");
}
bytes = new byte[size];
DataInputStream dis = new DataInputStream(new FileInputStream(file));
int read = 0;
int numRead = 0;
while (read < bytes.length&& (numRead = dis.read(bytes, read, bytes.length - read)) >= 0) {
read = read + numRead;
} 
// Ensure all the bytes have been read in
if (read < bytes.length) {
System.out.println("Could not completely read: "+ file.getName());
}
} catch (Exception e) {
   e.getMessage();
}
return bytes;
}

}



The output of the above program is like:


Id of CREATED Document is : {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a
Description from CREATED Document : This is a txt document.
Content of CREATED Document : These are the contents of Sample File1.
======================================================
Id of UPDATED Document is : {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a
======================================================
Id of Fetched Document is : {jcrUuid}cbe663c6-c6fb-432b-a260-b6c4d18e597a
Description from Fetched Document : This is the UPDATED Description of the document
Contents of UPDATED/Fetched Document : These are the contents of Sample File1.

 

 

Retrieve Contents of a Document Revision

Scenario: There are 'n' number of versions of a document in the repository. Now how to retrieve the contents of a particular revision of that document.

 

package com.sungard.bootcamp.client;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import ag.carnot.workflow.runtime.DmsUtils;
import ag.carnot.workflow.runtime.Document;
import ag.carnot.workflow.runtime.DocumentInfo;
import ag.carnot.workflow.runtime.DocumentManagementService;
import ag.carnot.workflow.runtime.ServiceFactory;
import ag.carnot.workflow.runtime.ServiceFactoryLocator;
import ag.carnot.workflow.runtime.beans.removethis.SecurityProperties;
public class DMSClient {

public static void main(String[] args) { // Obtain a reference to the ServiceFactory ServiceFactory sf = getServiceFactory(null, null, null, "motu", "motu"); DocumentManagementService dmsService = sf.getDocumentManagementService(); // pass the documentId to get the document versions of that document List<Document> list = dmsService.getDocumentVersions("{jcrUuid}05044280-8411-4fd8-8927-99b23560e4c3"); for(int i=0;i<list.size();i++){ Document document = (Document)list.get(i); System.out.println("DocumentID :: " + document.getId()); System.out.println("Document RevisionId :: " +document.getRevisionId()); System.out.println("Document RevisionName :: "+ document.getRevisionName()); System.out.println("Document Contents :: " + new String( dmsService.retrieveDocumentContent(document.getRevisionId()))); } }

// Return ServiceFactory private static ServiceFactory getServiceFactory(String partition, String domain, String realm, String user, String password) { Map properties = new HashMap(); properties.put(SecurityProperties.CRED_PARTITION, partition); properties.put(SecurityProperties.CRED_DOMAIN, domain); properties.put(SecurityProperties.CRED_REALM, realm); return ServiceFactoryLocator.get(user, password, properties); } }

Back to the top