MARMOTTA-204: updated kiwi triplestore to be fully compatible with sesame 2.7.0
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/1ff9df65 Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/1ff9df65 Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/1ff9df65 Branch: refs/heads/develop Commit: 1ff9df65e72e69d42f35bb68f2caf5602ff36a93 Parents: 3e5720b Author: Sergio Fernández <[email protected]> Authored: Wed Apr 17 09:10:35 2013 +0200 Committer: Sergio Fernández <[email protected]> Committed: Wed Apr 17 09:10:35 2013 +0200 ---------------------------------------------------------------------- .../marmotta/kiwi/model/rdf/KiWiNamespace.java | 7 ++- .../marmotta/kiwi/sail/KiWiValueFactory.java | 42 +++++++++----- 2 files changed, 33 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1ff9df65/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/model/rdf/KiWiNamespace.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/model/rdf/KiWiNamespace.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/model/rdf/KiWiNamespace.java index 83ec60c..42957f3 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/model/rdf/KiWiNamespace.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/model/rdf/KiWiNamespace.java @@ -57,7 +57,6 @@ public class KiWiNamespace implements Namespace, Serializable { public String getPrefix() { return prefix; - } public void setPrefix(String prefix) { @@ -159,4 +158,10 @@ public class KiWiNamespace implements Namespace, Serializable { result = 31 * result + (deleted != null ? deleted.hashCode() : 0); return result; } + + @Override + public int compareTo(Namespace other) { + return uri.compareTo(other.getName()); + } + } http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1ff9df65/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java index 22038f6..dc7c631 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java @@ -17,13 +17,34 @@ */ package org.apache.marmotta.kiwi.sail; -import com.google.common.collect.MapMaker; +import info.aduna.iteration.Iterations; + +import java.sql.SQLException; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.Random; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.locks.ReentrantLock; + +import javax.xml.datatype.XMLGregorianCalendar; + import org.apache.commons.lang.LocaleUtils; import org.apache.marmotta.commons.sesame.model.LiteralCommons; import org.apache.marmotta.commons.sesame.model.Namespaces; import org.apache.marmotta.commons.util.DateUtils; import org.apache.marmotta.kiwi.model.caching.IntArray; -import org.apache.marmotta.kiwi.model.rdf.*; +import org.apache.marmotta.kiwi.model.rdf.KiWiAnonResource; +import org.apache.marmotta.kiwi.model.rdf.KiWiBooleanLiteral; +import org.apache.marmotta.kiwi.model.rdf.KiWiDateLiteral; +import org.apache.marmotta.kiwi.model.rdf.KiWiDoubleLiteral; +import org.apache.marmotta.kiwi.model.rdf.KiWiIntLiteral; +import org.apache.marmotta.kiwi.model.rdf.KiWiLiteral; +import org.apache.marmotta.kiwi.model.rdf.KiWiNode; +import org.apache.marmotta.kiwi.model.rdf.KiWiResource; +import org.apache.marmotta.kiwi.model.rdf.KiWiStringLiteral; +import org.apache.marmotta.kiwi.model.rdf.KiWiTriple; +import org.apache.marmotta.kiwi.model.rdf.KiWiUriResource; import org.apache.marmotta.kiwi.persistence.KiWiConnection; import org.openrdf.model.BNode; import org.openrdf.model.Literal; @@ -33,19 +54,11 @@ import org.openrdf.model.URI; import org.openrdf.model.Value; import org.openrdf.model.ValueFactory; import org.openrdf.model.impl.ContextStatementImpl; -import org.openrdf.model.impl.StatementImpl; import org.openrdf.repository.RepositoryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.xml.datatype.XMLGregorianCalendar; -import java.sql.SQLException; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Random; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.locks.ReentrantLock; +import com.google.common.collect.MapMaker; /** * Add file description here! @@ -77,7 +90,7 @@ public class KiWiValueFactory implements ValueFactory { private KiWiStore store; private ReentrantLock nodeLock; - private ReentrantLock tripleLock; + //private ReentrantLock tripleLock; private ConcurrentMap<String,ReentrantLock> resourceLocks; private ConcurrentMap<Object,ReentrantLock> literalLocks; @@ -87,7 +100,7 @@ public class KiWiValueFactory implements ValueFactory { public KiWiValueFactory(KiWiStore store, String defaultContext) { nodeLock = store.nodeLock; - tripleLock = store.tripleLock; + //tripleLock = store.tripleLock; resourceLocks = new MapMaker().weakKeys().weakValues().makeMap(); literalLocks = new MapMaker().weakKeys().weakValues().makeMap(); @@ -260,7 +273,6 @@ public class KiWiValueFactory implements ValueFactory { * @return a typed literal representation of the supplied object. * @since 2.7.0 */ - @Override public Literal createLiteral(Object object) { if(object instanceof XMLGregorianCalendar) { return createLiteral((XMLGregorianCalendar)object); @@ -607,7 +619,7 @@ public class KiWiValueFactory implements ValueFactory { KiWiResource kcontext = convert(context); // test if the triple already exists in the database; if yes, return it - List<Statement> triples = connection.listTriples(ksubject,kpredicate,kobject,kcontext,true).asList(); + List<Statement> triples = Iterations.asList(connection.listTriples(ksubject,kpredicate,kobject,kcontext,true)); if(triples.size() == 1) { result = triples.get(0); } else {
