!!! 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();