Dear Wiki user, You have subscribed to a wiki page or wiki category on "Jakarta-slide Wiki" for change notification.
The following page has been changed by James Kelly: http://wiki.apache.org/jakarta-slide/Sample_API_application The comment on the change is: Added properties example ------------------------------------------------------------------------------ - Sample application sent by Stefan Fromm which was found in mailing-list archives (jakarta-slide-user, Mon, 06 Sep 2004 12:29:35 GMT) + = Creating File Revisions = - It shows how to create revisions for file. + Sample application sent by Stefan Fromm which was found in mailing-list archives (jakarta-slide-user, Mon, 06 Sep 2004 12:29:35 GMT) It shows how to create revisions for file. + {{{ import java.io.ByteArrayInputStream; import java.util.Date; @@ -157, +158 @@ } }}} + = Getting Properties = + + This example demonstrates how to access file contents and properties from the SlideAPI. + + {{{ + import java.util.Enumeration; + + import javax.transaction.NotSupportedException; + import javax.transaction.SystemException; + + import org.apache.slide.authenticate.CredentialsToken; + import org.apache.slide.authenticate.SecurityToken; + import org.apache.slide.common.Domain; + import org.apache.slide.common.NamespaceAccessToken; + import org.apache.slide.common.SlideToken; + import org.apache.slide.common.SlideTokenImpl; + import org.apache.slide.content.Content; + import org.apache.slide.content.NodeProperty; + import org.apache.slide.content.NodeRevisionContent; + import org.apache.slide.content.NodeRevisionDescriptor; + import org.apache.slide.content.NodeRevisionDescriptors; + + /** + * An example the Slide API that demonstrates fetching the properties + * enumeration from a NodeRevisionDescriptor. This example assumes the existance + * of "/files/test.txt" in the store (this file can be generated by the + * SlideVersionsTest in the example above.) + * + * @author James Kelly + */ + public class SlideTest2 { + + /** + * Prints the contents and properties for "/files/test.txt" + * + * @param args + */ + public static void main(String[] args) { + SlideTest2 client = new SlideTest2(); + try { + client.printContent("/files/test.txt"); + client.printProperties("/files/test.txt"); + } catch (NotSupportedException e) { + + e.printStackTrace(); + } catch (SystemException e) { + e.printStackTrace(); + } + } + + /** Default Namespace */ + private NamespaceAccessToken namespace; + + /** Security Token */ + private SlideToken token; + + /** + * Loads the default namespace and creates a new security token for "root" + */ + public SlideTest2() { + this.namespace = Domain.accessNamespace(new SecurityToken(""), Domain + .getDefaultNamespace()); + this.token = new SlideTokenImpl(new CredentialsToken("root")); + this.token.setForceStoreEnlistment(true); + } + + /** + * Fetches a file from the store and prints its content to STOUT. + * + * @param path + * the path to the file + * @throws NotSupportedException + * @throws SystemException + */ + public void printContent(String path) throws NotSupportedException, + SystemException { + this.namespace.begin(); + try { + Content c = this.namespace.getContentHelper(); + NodeRevisionDescriptors revs = c.retrieve(this.token, path); + NodeRevisionDescriptor rev = c.retrieve(this.token, revs, revs + .getLatestRevision()); + NodeRevisionContent nrc = c.retrieve(this.token, path, rev); + System.out.print(nrc.getContent()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + this.namespace.rollback(); + } + } + + /** + * Fetches and prints the properties enumeration to STDOUT. + * + * @param path + * the file URI + * @throws IllegalStateException + * @throws SecurityException + * @throws SystemException + * @throws NotSupportedException + */ + @SuppressWarnings("unchecked") + public void printProperties(String path) throws IllegalStateException, + SecurityException, SystemException, NotSupportedException { + this.namespace.begin(); + try { + Content c = this.namespace.getContentHelper(); + NodeRevisionDescriptors revs = c.retrieve(this.token, path); + NodeRevisionDescriptor rev = c.retrieve(this.token, revs, revs + .getLatestRevision()); + Enumeration e = rev.enumerateProperties(); + while (e.hasMoreElements()) { + NodeProperty p = (NodeProperty) e.nextElement(); + System.out.println(String.format("%s = %s", p.getName(), p + .getValue())); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + this.namespace.rollback(); + } + } + } + }}} + --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]