Could someone please point out what is wrong with this use of the API?
I only get 2 versions.

        private Node write(Session session, String path, String content)
throws RepositoryException {
                
                Node root = session.getRootNode();
                Node node;
                
                if (root.hasNode(path)) {
                        node = root.getNode(path);                      
                } else {
                        node = root.addNode("jcr:content", "nt:resource");
                        node.setProperty("jcr:mimeType", "text/plain");
                    node.setProperty("jcr:encoding", "utf-8");          
                    node.addMixin("mix:versionable");
                }

                node.setProperty("jcr:data", content);

                Calendar lastModified = Calendar.getInstance();
            lastModified.setTimeInMillis(System.currentTimeMillis());
            node.setProperty("jcr:lastModified", lastModified);
                
            session.save();
        
            node.checkin();
        
                return node;
        }
        
        public void testVersioning() throws Exception {
                
                write(session, "test", "test1");
                write(session, "test", "test2");
                write(session, "test", "test3");
                Node node = write(session, "test", "test4");
                
        VersionHistory history = node.getVersionHistory();

        int versions = 0;

        for (VersionIterator it = history.getAllVersions(); it.hasNext();) {
                        Version version = (Version) it.next();                  
                        System.out.println(version.getUUID() + " (" +
version.getCreated().getTime() + ")");
                        versions++;
        }

        assertEquals(4, versions);
        }

Reply via email to