Package org.apache.marmotta.kiwi.versioning.model

Examples of org.apache.marmotta.kiwi.versioning.model.Version


     */
    @DELETE
    @Path("/versions/{id:[0-9]+}")
    public Response deleteVersion(@PathParam("id") Long id) {
        try {
            Version version = versioningService.getVersion(id);

            if(version != null) {
                versioningService.removeVersion(id);

                return Response.ok().entity("success").build();
View Full Code Here


     */
    @POST
    @Path("/versions/{id:[0-9]+}")
    public Response revertVersion(@PathParam("id") Long id) {
        try {
            Version version = versioningService.getVersion(id);

            if(version != null) {
                versioningService.removeVersion(id);

                return Response.ok().entity("success").build();
View Full Code Here

            data.put("original",original.toString());

            List<Map<String,String>> vs = new ArrayList<Map<String,String>>();

            while (versions.hasNext()) {
                Version v = versions.next();
                Map<String,String> m = new HashMap<String,String>();
                m.put("date",v.getCommitTime().toString());
                m.put("uri",MementoUtils.resourceURI(original.toString(), v.getCommitTime(), configurationService.getBaseUri()).toString());
                m.put("tstamp", TSTAMP.format(v.getCommitTime()));
                vs.add(m);
            }

            data.put("versions",vs);
View Full Code Here

            boolean first = true;

            //write versions
            while (versions.hasNext()) {

                Version v = versions.next();

                //append memento resource uri for versions v
                w.append("<");
                w.append(MementoUtils.resourceURI(original.toString(),v.getCommitTime(),configurationService.getBaseUri()).toString());
                w.append(">; rel=\"");

                //write first, last, memento
                if( first && versions.hasNext()) {
                    w.append("first memento");
                } else if(!versions.hasNext()) {
                    w.append("last memento");
                } else {
                    w.append("memento");
                }

                //add datetime
                w.append("\"; datetime=\"");
                w.append(v.getCommitTime().toString());
                w.append("\",");

                w.newLine();
                first = false;
            }
View Full Code Here

    @GET
    @Produces("application/json")
    @Path("/versions/{id:[0-9]+}")
    public Response getVersion(@PathParam("id") Long id) {
        try {
            Version version = versioningService.getVersion(id);

            if(version != null) {
                Map<String,Object> result = new HashMap<String, Object>();
                result.put("id",version.getId());
                if(version.getCreator() != null) {
                    result.put("creator", version.getCreator().stringValue());
                }
                result.put("date",    DateUtils.ISO8601FORMAT.format(version.getCommitTime()));

                result.put("added_triples", JSONUtils.serializeTriplesAsJson(version.getAddedTriples()));
                result.put("removed_triples", JSONUtils.serializeTriplesAsJson(version.getRemovedTriples()));

                return Response.ok().entity(result).build();

            } else {
                return Response.status(Response.Status.NOT_FOUND).entity("version with id "+id+" does not exist").build();
View Full Code Here

     * @param data
     */
    @Override
    public void afterCommit(TransactionData data) {
        if(data.getAddedTriples().size() > 0 || data.getRemovedTriples().size() > 0) {
            Version version = new Version();

            version.setCommitTime(data.getCommitTime());
            for(Statement stmt : data.getAddedTriples()) {
                if(filter.accept(stmt)) {
                    version.getAddedTriples().add(stmt);
                }
            }
            for(Statement stmt : data.getRemovedTriples()) {
                if(filter.accept(stmt)) {
                    version.getRemovedTriples().add(stmt);
                }
            }

            if(version.getAddedTriples().size() > 0 || version.getRemovedTriples().size() > 0) {

                try {
                    final KiWiVersioningConnection connection = persistence.getConnection();
                    try {
                        connection.storeVersion(version);
View Full Code Here

     * @param row
     * @return
     * @throws SQLException
     */
    protected Version constructVersionFromDatabase(ResultSet row) throws SQLException {
        Version result = new Version(row.getLong("id"));
        result.setCommitTime(new Date(row.getTimestamp("createdAt").getTime()));

        if(row.getObject("creator") != null) {
            result.setCreator((KiWiResource) loadNodeById(row.getLong("creator")));
        }

        // query the versions_added and versions_removed join tables to reconstruct the triple sets
        PreparedStatement queryAdded = getPreparedStatement("load.versions_added");
        synchronized (queryAdded) {
            queryAdded.clearParameters();
            queryAdded.setLong(1,result.getId());
            ResultSet addedRow = queryAdded.executeQuery();
            try {
                while(addedRow.next()) {
                    result.addTriple(loadTripleById(addedRow.getLong("triple_id")));
                }
            } finally {
                addedRow.close();
            }
        }

        PreparedStatement queryRemoved = getPreparedStatement("load.versions_removed");
        synchronized (queryRemoved) {
            queryRemoved.clearParameters();
            queryRemoved.setLong(1,result.getId());
            ResultSet removedRow = queryRemoved.executeQuery();
            try {
                while(removedRow.next()) {
                    result.removeTriple(loadTripleById(removedRow.getLong("triple_id")));
                }
            } finally {
                removedRow.close();
            }
        }
View Full Code Here

            connection.storeTriple(triple1);
            connection.storeTriple(triple2);
            connection.commit();

            Version version1 = new Version();
            version1.setCommitTime(new Date());
            version1.addTriple(triple1);
            connection.storeVersion(version1);
            connection.commit();

            // check if listVersions now gives exactly one version
            List<Version> list1 = connection.listVersions().asList();
            Assert.assertEquals("there should be exactly one version",1,list1.size());
            Assert.assertEquals("contents of version differ", version1, list1.get(0));
            Assert.assertEquals("version id is not 1", 1L, (long)list1.get(0).getId());

            // check if listVersions with subject1 now gives exactly one version
            List<Version> listr1 = connection.listVersions(subject1).asList();
            Assert.assertEquals("there should be exactly one version", 1, listr1.size());
            Assert.assertEquals("contents of version differ", version1, listr1.get(0));
            Assert.assertEquals("version id is not 1", 1L, (long)listr1.get(0).getId());


            Version version2 = new Version();
            version2.setCommitTime(new Date());
            version2.addTriple(triple2);
            version2.removeTriple(triple1);
            connection.storeVersion(version2);
            connection.commit();

            // check if listVersions now gives exactly two versions
            List<Version> list2 = connection.listVersions().asList();
View Full Code Here

            // wait for one second to be sure to capture MySQL cutting milliseconds
            mysqlSleep();


            Version version1 = new Version();
            version1.setCommitTime(new Date());
            version1.addTriple(triple1);
            connection.storeVersion(version1);
            connection.commit();

            // wait for one second to be sure to capture MySQL cutting milliseconds
            mysqlSleep();

            Date date2 = new Date();

            // wait for one second to be sure to capture MySQL cutting milliseconds
            mysqlSleep();


            Version version2 = new Version();
            version2.setCommitTime(new Date());
            version2.addTriple(triple2);
            version2.removeTriple(triple1);
            connection.deleteTriple(triple1);
            connection.storeVersion(version2);
            connection.commit();

            // wait for one second to be sure to capture MySQL cutting milliseconds
            mysqlSleep();

            Date date3 = new Date();


            // now we test different ways of listing versions between dates
            List<Version> list1 = Iterations.asList(connection.listVersions(date1, date2));
            Assert.assertEquals("there should be exactly one version from "+date1+" to "+date2,1,list1.size());
            Assert.assertEquals("contents of version differ", version1, list1.get(0));
            Assert.assertEquals("version id is not 1", 1L, (long)list1.get(0).getId());

            // check if getLatestVersion at date2 works
            Version latest2 = connection.getLatestVersion(subject,date2);
            Assert.assertNotNull("latest version for subject was not found",latest2);
            Assert.assertEquals("latest version is not the expected version", version1,latest2);

            // check if listVersions with subject1 now gives exactly one version
            List<Version> listr1 = Iterations.asList(connection.listVersions(subject, date1, date2));
View Full Code Here

TOP

Related Classes of org.apache.marmotta.kiwi.versioning.model.Version

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.