!!! Listings zum Artikel "Kein alter Hase" von
!!! Stefan Minter und Bastian Spanneberg in
!!! iX 4/2010, S. 146
!!! Listing 1: Projektabhängigkeiten
javax.jcr
jcr
2.0
org.slf4j
slf4j-simple
1.5.3
org.apache.jackrabbit
jackrabbit-jcr2dav
2.0.0
!!! Listing 2: Sitzungsanfang
try {
Session session = repository.login();
System.out.println("Logged in as " + session.getUserID());
// do something
// ...
} finally {
session.logout();
}
!!! Listing 3: Ausgabe der Anfragesprachen
Workspace workspace = session.getWorkspace();
QueryManager qm = workspace.getQueryManager();
System.out.println("Supported query languages:");
for ( String ql : qm.getSupportedQueryLanguages() ) {
System.out.println(ql);
}
NodeTypeManager ntm = workspace.getNodeTypeManager();
NodeTypeIterator pnti = ntm.getPrimaryNodeTypes();
System.out.println("Available primary node types:");
while ( pnti.hasNext() ) {
System.out.println(pnti.nextNodeType().getName());
}
NodeTypeIterator mnti = ntm.getMixinNodeTypes();
System.out.println("Available mixin node types:");
while ( mnti.hasNext() ) {
System.out.println(mnti.nextNodeType().getName());
}
!!! Listing 4: Knoten anlegen
Session session = repository.login(
new SimpleCredentials("user", "password".toCharArray())
);
Node rootNode = session.getRootNode();
Node contactsNode = rootNode.addNode("contacts");
Node mrThreaderNode = contactsNode.addNode("mr-threader");
mrThreaderNode.setProperty("first-name", "John");
mrThreaderNode.setProperty("last-name", "Threader");
session.save();
session.logout();
!!! Listing 5: Auslesen der Daten
// traversal access
Node rootNode = session.getRootNode();
Node contactsNode = rootNode.getNode("contacts").getNode("mr-threader");
PropertyIterator pi = contactsNode.getProperties();
while ( pi.hasNext() ) {
Property p = pi.nextProperty();
System.out.println(p.getName() + " : " + p.getString());
}
!!! Listing 6: XML-Import
Node root = session.getRootNode();
// open the XML file
FileInputStream xml = new FileInputStream("instanz.xml");
// import it under the workspace root
session.importXML(
"/", xml, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW
);
// close XML stream an save the session
xml.close();
session.save();