Subversion Repositories aduna

Compare Revisions

Rev 11877 → Rev 11878

trunk/auditing-repository/src/test/java/org/openrdf/repository/auditing/AuditingTest.java
89,8 → 89,8
final ActivityFactory delegate = repo.getActivityFactory();
repo.setActivityFactory(new ActivityFactory() {
 
public URI assignActivityURI(AuditingRepositoryConnection con) {
return lastActivity = delegate.assignActivityURI(con);
public URI createActivityURI(ValueFactory vf) {
return lastActivity = delegate.createActivityURI(vf);
}
 
public void activityEnded(URI activityGraph,
477,4 → 477,21
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
 
public void testAutoCommit() throws Exception {
assertTrue(con.isEmpty());
con.add(carmichael, knows, harris);
con.close();
con = repo.getConnection();
assertTrue(con.hasStatement(carmichael, knows, harris, false));
assertTrue(con.hasStatement(carmichael, GENERATED_BY, null, false));
assertFalse(con.hasStatement(null, null, null, false, new Resource[]{null}));
assertEquals(Arrays.asList(lastActivity), con.getContextIDs().asList());
assertTrue(con.hasStatement(null, RDF.TYPE, ACTIVITY, false));
assertFalse(con.hasStatement(null, RDF.TYPE, RECENT, false));
assertFalse(con.hasStatement(null, RDF.TYPE, OBSOLETE, false));
assertTrue(con.hasStatement(null, ENDED_AT, null, false));
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
}
trunk/auditing-repository/src/test/java/org/openrdf/repository/auditing/AuditingRecentTest.java
91,8 → 91,8
final ActivityFactory delegate = repo.getActivityFactory();
repo.setActivityFactory(new ActivityFactory() {
 
public URI assignActivityURI(AuditingRepositoryConnection con) {
return lastActivity = delegate.assignActivityURI(con);
public URI createActivityURI(ValueFactory vf) {
return lastActivity = delegate.createActivityURI(vf);
}
 
public void activityEnded(URI activityGraph,
478,4 → 478,21
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
 
public void testAutoCommit() throws Exception {
assertTrue(con.isEmpty());
con.add(carmichael, knows, harris);
con.close();
con = repo.getConnection();
assertTrue(con.hasStatement(carmichael, knows, harris, false));
assertTrue(con.hasStatement(carmichael, GENERATED_BY, null, false));
assertFalse(con.hasStatement(null, null, null, false, new Resource[]{null}));
assertEquals(Arrays.asList(lastActivity), con.getContextIDs().asList());
assertTrue(con.hasStatement(null, RDF.TYPE, ACTIVITY, false));
assertTrue(con.hasStatement(null, RDF.TYPE, RECENT, false));
assertFalse(con.hasStatement(null, RDF.TYPE, OBSOLETE, false));
assertTrue(con.hasStatement(null, ENDED_AT, null, false));
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
}
trunk/auditing-repository/src/test/java/org/openrdf/repository/auditing/AuditingPurgeTest.java
51,7 → 51,6
private URI thomson = vf.createURI(NS, "thomson");
private URI knows = vf.createURI("http://xmlns.com/foaf/0.1/knows");
private URI lastActivity;
private int activityNumber;
private AuditingRepositoryConnection con;
private AuditingRepository repo;
 
91,8 → 90,8
final ActivityFactory delegate = repo.getActivityFactory();
repo.setActivityFactory(new ActivityFactory() {
 
public URI assignActivityURI(AuditingRepositoryConnection con) {
return lastActivity = delegate.assignActivityURI(con);
public URI createActivityURI(ValueFactory vf) {
return lastActivity = delegate.createActivityURI(vf);
}
 
public void activityEnded(URI activityGraph,
481,4 → 480,21
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
 
public void testAutoCommit() throws Exception {
assertTrue(con.isEmpty());
con.add(carmichael, knows, harris);
con.close();
con = repo.getConnection();
assertTrue(con.hasStatement(carmichael, knows, harris, false));
assertTrue(con.hasStatement(carmichael, GENERATED_BY, null, false));
assertFalse(con.hasStatement(null, null, null, false, new Resource[]{null}));
assertEquals(Arrays.asList(lastActivity), con.getContextIDs().asList());
assertTrue(con.hasStatement(null, RDF.TYPE, ACTIVITY, false));
assertFalse(con.hasStatement(null, RDF.TYPE, RECENT, false));
assertFalse(con.hasStatement(null, RDF.TYPE, OBSOLETE, false));
assertTrue(con.hasStatement(null, ENDED_AT, null, false));
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
}
trunk/auditing-repository/src/test/java/org/openrdf/repository/auditing/AuditingOptimisticTest.java
51,7 → 51,6
private URI thomson = vf.createURI(NS, "thomson");
private URI knows = vf.createURI("http://xmlns.com/foaf/0.1/knows");
private URI lastActivity;
private int activityNumber;
private AuditingRepositoryConnection con;
private AuditingRepository repo;
 
90,8 → 89,8
final ActivityFactory delegate = repo.getActivityFactory();
repo.setActivityFactory(new ActivityFactory() {
 
public URI assignActivityURI(AuditingRepositoryConnection con) {
return lastActivity = delegate.assignActivityURI(con);
public URI createActivityURI(ValueFactory vf) {
return lastActivity = delegate.createActivityURI(vf);
}
 
public void activityEnded(URI activityGraph,
477,4 → 476,21
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
 
public void testAutoCommit() throws Exception {
assertTrue(con.isEmpty());
con.add(carmichael, knows, harris);
con.close();
con = repo.getConnection();
assertTrue(con.hasStatement(carmichael, knows, harris, false));
assertTrue(con.hasStatement(carmichael, GENERATED_BY, null, false));
assertFalse(con.hasStatement(null, null, null, false, new Resource[]{null}));
assertEquals(Arrays.asList(lastActivity), con.getContextIDs().asList());
assertTrue(con.hasStatement(null, RDF.TYPE, ACTIVITY, false));
assertFalse(con.hasStatement(null, RDF.TYPE, RECENT, false));
assertFalse(con.hasStatement(null, RDF.TYPE, OBSOLETE, false));
assertTrue(con.hasStatement(null, ENDED_AT, null, false));
assertFalse(con.hasStatement(null, INFORMED_BY, null, false));
assertFalse(con.hasStatement(null, CAHNGED, null, false));
}
}
trunk/auditing-repository/src/main/java/org/openrdf/repository/auditing/helpers/ActivityTagFactory.java
7,11 → 7,14
import java.util.concurrent.atomic.AtomicLong;
 
import org.openrdf.model.URI;
import org.openrdf.model.ValueFactory;
import org.openrdf.model.vocabulary.RDF;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import org.openrdf.repository.auditing.ActivityFactory;
import org.openrdf.repository.auditing.AuditingRepositoryConnection;
 
public class ActivityTagFactory implements ActivityFactory {
private static final String ACTIVITY = "http://www.w3.org/ns/prov#Activity";
private static final String uid = "t"
+ Long.toHexString(System.currentTimeMillis()) + "x";
private static final AtomicLong seq = new AtomicLong(0);
31,13 → 34,15
space = "tag:" + username + "@" + hostName + ",";
}
 
public URI assignActivityURI(AuditingRepositoryConnection con) {
public URI createActivityURI(ValueFactory vf) {
String local = uid + seq.getAndIncrement();
return con.getValueFactory().createURI(getNamespace(), local);
return vf.createURI(getNamespace(), local);
}
 
public void activityStarted(URI activityGraph, RepositoryConnection con) {
// don't care
public void activityStarted(URI activityGraph, RepositoryConnection con)
throws RepositoryException {
ValueFactory vf = con.getValueFactory();
con.add(activityGraph, RDF.TYPE, vf.createURI(ACTIVITY), activityGraph);
}
 
public void activityEnded(URI activityGraph, RepositoryConnection con) {
trunk/auditing-repository/src/main/java/org/openrdf/repository/auditing/helpers/ActivitySequenceFactory.java
3,11 → 3,14
import java.util.concurrent.atomic.AtomicLong;
 
import org.openrdf.model.URI;
import org.openrdf.model.ValueFactory;
import org.openrdf.model.vocabulary.RDF;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import org.openrdf.repository.auditing.ActivityFactory;
import org.openrdf.repository.auditing.AuditingRepositoryConnection;
 
public class ActivitySequenceFactory implements ActivityFactory {
private static final String ACTIVITY = "http://www.w3.org/ns/prov#Activity";
private final String uid = "t"
+ Long.toHexString(System.currentTimeMillis()) + "x";
private final AtomicLong seq = new AtomicLong(0);
17,12 → 20,14
this.ns = ns;
}
 
public URI assignActivityURI(AuditingRepositoryConnection con) {
return con.getValueFactory().createURI(ns, uid + seq.getAndIncrement());
public URI createActivityURI(ValueFactory vf) {
return vf.createURI(ns, uid + seq.getAndIncrement());
}
 
public void activityStarted(URI activityGraph, RepositoryConnection con) {
// don't care
public void activityStarted(URI activityGraph, RepositoryConnection con)
throws RepositoryException {
ValueFactory vf = con.getValueFactory();
con.add(activityGraph, RDF.TYPE, vf.createURI(ACTIVITY), activityGraph);
}
 
public void activityEnded(URI activityGraph, RepositoryConnection con) {
trunk/auditing-repository/src/main/java/org/openrdf/repository/auditing/ActivityFactory.java
1,12 → 1,13
package org.openrdf.repository.auditing;
 
import org.openrdf.model.URI;
import org.openrdf.model.ValueFactory;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
 
public interface ActivityFactory {
 
URI assignActivityURI(AuditingRepositoryConnection con);
URI createActivityURI(ValueFactory vf);
 
void activityStarted(URI activityGraph, RepositoryConnection con) throws RepositoryException;
 
trunk/auditing-repository/src/main/java/org/openrdf/repository/auditing/AuditingRepositoryConnection.java
102,7 → 102,6
private final Map<URI, Set<URI>> modifiedEntities = new HashMap<URI, Set<URI>>();
private Set<URI> uncommittedActivityGraphs = new LinkedHashSet<URI>();
private ActivityFactory activityFactory;
private boolean assigningActivity;
 
public AuditingRepositoryConnection(AuditingRepository repository,
RepositoryConnection connection) throws RepositoryException {
126,13 → 125,8
@Override
public synchronized URI getInsertContext() {
URI activityGraph = super.getInsertContext();
if (activityGraph == null && !assigningActivity && activityFactory != null) {
assigningActivity = true;
try {
setInsertContext(activityFactory.assignActivityURI(this));
} finally {
assigningActivity = false;
}
if (activityGraph == null && activityFactory != null) {
setInsertContext(activityFactory.createActivityURI(getValueFactory()));
return super.getInsertContext();
}
return activityGraph;
411,7 → 405,7
return;
if (uncommittedActivityGraphs.add(activityGraph)) {
if (activityFactory != null) {
activityFactory.activityStarted(activityGraph, this);
activityFactory.activityStarted(activityGraph, getDelegate());
}
}
if (subject instanceof URI && !activityGraph.equals(subject)) {
479,17 → 473,17
if (entities != null) {
URI used = getValueFactory().createURI(USED);
for (URI entity : entities) {
add(activityGraph, used, entity, activityGraph);
getDelegate().add(activityGraph, used, entity, activityGraph);
}
}
if (graphs != null) {
URI informedBy = getValueFactory().createURI(WAS_INFORMED_BY);
for (URI graph : graphs) {
add(activityGraph, informedBy, graph, activityGraph);
getDelegate().add(activityGraph, informedBy, graph, activityGraph);
}
}
URI recentActivity = getValueFactory().createURI(RECENT_ACTIVITY);
add(activityGraph, RDF.TYPE, recentActivity, activityGraph);
getDelegate().add(activityGraph, RDF.TYPE, recentActivity, activityGraph);
}
 
private void finalizeActivityGraph(URI activityGraph)
516,7 → 510,7
}
if (activityFactory != null) {
for (URI activityGraph : recentActivities) {
activityFactory.activityEnded(activityGraph, this);
activityFactory.activityEnded(activityGraph, getDelegate());
}
}
}