You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2014/01/05 19:21:10 UTC

svn commit: r1555602 [1/2] - in /jena/Experimental/jena-rmi: ./ jena-rmi-client/ jena-rmi-client/src/ jena-rmi-client/src/main/ jena-rmi-client/src/main/java/ jena-rmi-client/src/main/java/org/ jena-rmi-client/src/main/java/org/apache/ jena-rmi-client/...

Author: claude
Date: Sun Jan  5 18:21:09 2014
New Revision: 1555602

URL: http://svn.apache.org/r1555602
Log:
Share project "jena-rmi" into "https://svn.apache.org/repos/asf/jena/Experimental/jena-rmi"

Added:
    jena/Experimental/jena-rmi/jena-rmi-client/   (with props)
    jena/Experimental/jena-rmi/jena-rmi-client/client.policy
    jena/Experimental/jena-rmi/jena-rmi-client/pom.xml   (with props)
    jena/Experimental/jena-rmi/jena-rmi-client/src/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/ClientEngine.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-client/src/main/resources/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphEventManagerTest.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphTest.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-client/src/test/resources/
    jena/Experimental/jena-rmi/jena-rmi-server/
    jena/Experimental/jena-rmi/jena-rmi-server/pom.xml   (with props)
    jena/Experimental/jena-rmi/jena-rmi-server/server.policy
    jena/Experimental/jena-rmi/jena-rmi-server/src/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/GraphEngine.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-server/src/main/resources/
    jena/Experimental/jena-rmi/jena-rmi-server/src/test/
    jena/Experimental/jena-rmi/jena-rmi-server/src/test/java/
    jena/Experimental/jena-rmi/jena-rmi-server/src/test/resources/
    jena/Experimental/jena-rmi/jena-rmi-shared/   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/pom.xml   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_Graph.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphEventManager.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphListener.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphStatisticsHandler.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_PrefixMapping.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_RemoteIterator.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_TransactionHandler.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphEventManagerImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphListenerImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphStatisticsHandlerImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteIteratorImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemotePrefixMappingImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteTransactionHandlerImpl.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/GraphExistsException.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/NodeType.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteCapabilities.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteGraph.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteGraphEngine.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteGraphEventManager.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteGraphListener.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteGraphStatisticsHandler.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteIterator.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteNode.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemotePrefixMapping.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteTransactionHandler.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteTriple.java   (with props)
    jena/Experimental/jena-rmi/jena-rmi-shared/src/main/resources/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/test/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/test/java/
    jena/Experimental/jena-rmi/jena-rmi-shared/src/test/resources/
    jena/Experimental/jena-rmi/pom.xml   (with props)
    jena/Experimental/jena-rmi/src/
Modified:
    jena/Experimental/jena-rmi/   (props changed)

Propchange: jena/Experimental/jena-rmi/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Jan  5 18:21:09 2014
@@ -0,0 +1,7 @@
+target
+
+.classpath
+
+.project
+
+.settings

Propchange: jena/Experimental/jena-rmi/jena-rmi-client/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Jan  5 18:21:09 2014
@@ -0,0 +1,5 @@
+target
+
+.project
+
+.classpath

Added: jena/Experimental/jena-rmi/jena-rmi-client/client.policy
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-client/client.policy?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-client/client.policy (added)
+++ jena/Experimental/jena-rmi/jena-rmi-client/client.policy Sun Jan  5 18:21:09 2014
@@ -0,0 +1,4 @@
+grant {
+	permission java.security.AllPermission;
+};
+

Added: jena/Experimental/jena-rmi/jena-rmi-client/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-client/pom.xml?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-client/pom.xml (added)
+++ jena/Experimental/jena-rmi/jena-rmi-client/pom.xml Sun Jan  5 18:21:09 2014
@@ -0,0 +1,78 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.xenei</groupId>
+    <artifactId>jena-rmi</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>jena-rmi-client</artifactId>
+  <dependencies>
+  	<dependency>
+  		<groupId>org.xenei</groupId>
+  		<artifactId>jena-rmi-shared</artifactId>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.xenei</groupId>
+  		<artifactId>junit-contracts</artifactId>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.apache.jena</groupId>
+  		<artifactId>new-test</artifactId>
+  		<scope>test</scope>
+  		<type>test-jar</type>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.mockito</groupId>
+  		<artifactId>mockito-core</artifactId>
+  		<version>1.9.5</version>
+  		<scope>test</scope>
+  	</dependency>
+  </dependencies>
+  <build>
+        <plugins>
+          <!--  <plugin>
+                <groupId>org.dstovall</groupId>
+                <artifactId>onejar-maven-plugin</artifactId>
+                 <version>${onejar.version}</version>
+                <executions>
+                    <execution>
+                        <configuration>
+                            <mainClass>org.apache.jena.rmi.client.ClientEngine</mainClass>
+                           
+                            <onejarVersion>0.97</onejarVersion>                        
+                           
+                            <attachToBuild>true</attachToBuild>
+                            
+                            <classifier>onejar</classifier>
+                        </configuration>
+                        <goals>
+                            <goal>one-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            -->
+             <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${shade.version}</version>
+        <configuration>
+        <transformers>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                  <mainClass>org.apache.jena.rmi.client.ClientEngine</mainClass>
+                </transformer>
+              </transformers>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+        </plugins>
+    </build>
+  <name>Apache Jena - RMI Client</name>
+</project>
\ No newline at end of file

Propchange: jena/Experimental/jena-rmi/jena-rmi-client/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/ClientEngine.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/ClientEngine.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/ClientEngine.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/ClientEngine.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,84 @@
+package org.apache.jena.rmi.client;
+
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+
+import org.apache.jena.rmi.shared.RMI_Graph;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteGraphEngine;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.NodeFactory;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.shared.NotFoundException;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+public class ClientEngine implements RemoteGraphEngine {
+
+	private static RemoteGraphEngine graphEngine;
+
+	public static void main(String args[]) throws RemoteException {
+		if (System.getSecurityManager() == null) {
+			System.setSecurityManager(new SecurityManager());
+		}
+		try {
+			String name = "GraphEngine";
+			Registry registry = LocateRegistry.getRegistry();
+			graphEngine = (RemoteGraphEngine) registry.lookup(name);
+		} catch (Exception e) {
+			System.err.println("GraphEngine exception:");
+			e.printStackTrace();
+		}
+
+		RemoteGraph rg = null;
+		try {
+			rg = graphEngine.getGraph("foo");
+		}
+		catch (NotFoundException e)
+		{
+			rg = graphEngine.createGraph("foo");
+		}
+		
+		Graph g = new RMI_Graph(rg);
+		Node s = NodeFactory.createURI("http://example.com/s");
+		Node p = NodeFactory.createURI("http://example.com/p");
+		Node o = NodeFactory.createURI("http://example.com/o");
+		g.add(new Triple(s, p, o));
+		boolean b = g.contains(new Triple(s, p, o));
+		System.out.print(b);
+
+		Model m = ModelFactory.createModelForGraph(g);
+		Statement stmt = m.asStatement(new Triple(s, RDF.type.asNode(),
+				NodeFactory.createURI("http://example.com/sType")));
+		m.add(stmt);
+		stmt = m.asStatement(new Triple(p, RDF.type.asNode(), NodeFactory
+				.createURI("http://example.com/pType")));
+		m.add(stmt);
+		stmt = m.asStatement(new Triple(o, RDF.type.asNode(), NodeFactory
+				.createURI("http://example.com/oType")));
+		m.add(stmt);
+		m.write(System.out, "TURTLE");
+		m.close();
+	}
+
+	@Override
+	public RemoteGraph getGraph(String graphName) throws RemoteException {
+		return graphEngine.getGraph(graphName);
+	}
+
+	@Override
+	public RemoteGraph createGraph(String graphName) throws RemoteException {
+		return graphEngine.createGraph(graphName);
+	}
+
+	@Override
+	public void destroyGraph(String graphName) throws RemoteException {
+		graphEngine.destroyGraph(graphName);
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-client/src/main/java/org/apache/jena/rmi/client/ClientEngine.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphEventManagerTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphEventManagerTest.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphEventManagerTest.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphEventManagerTest.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,101 @@
+package og.apache.jena.rmi.client;
+
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+import java.util.Iterator;
+
+import org.apache.jena.rmi.shared.RMI_Graph;
+import org.apache.jena.rmi.shared.RMI_GraphEventManager;
+import org.apache.jena.rmi.shared.RMI_GraphListener;
+import org.apache.jena.rmi.shared.remote.GraphExistsException;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteGraphEngine;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.Contract.Inject;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
+import org.xenei.junit.contract.IProducer;
+
+import static org.junit.Assert.*;
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphStatisticsHandler;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Node_URI;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.mem.GraphMem;
+import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
+import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
+
+@RunWith(ContractSuite.class)
+@ContractImpl(RMI_GraphEventManager.class)
+public class GraphEventManagerTest {
+
+	static RemoteGraphEngine graphEngine;
+
+	@BeforeClass
+	public static void beforeClass() throws Exception {
+		if (System.getSecurityManager() == null) {
+			System.setSecurityManager(new SecurityManager());
+		}
+
+		String name = "GraphEngine";
+		Registry registry = LocateRegistry.getRegistry();
+		graphEngine = (RemoteGraphEngine) registry.lookup(name);
+
+	}
+
+	protected IProducer<RMI_GraphEventManager> eventManagerProducer = new IProducer<RMI_GraphEventManager>() {
+
+		private RemoteGraph rGraph;
+
+		private RemoteGraph getRemoteGraph() throws RemoteException {
+			if (rGraph == null)
+			{
+				try {
+					rGraph = graphEngine.createGraph("test0" );
+				}
+				catch (GraphExistsException e)
+				{
+					rGraph = graphEngine.getGraph("test0");
+				}
+			}
+			return rGraph;
+		}
+
+		@Override
+		public RMI_GraphEventManager newInstance() {
+			try {
+				return new RMI_GraphEventManager(
+						getRemoteGraph().getEventManager());
+			} catch (RemoteException e) {
+				throw new RuntimeException( e );
+			} catch (NotBoundException e) {
+				throw new RuntimeException( e );
+			}
+		}
+
+		@Override
+		public void cleanUp() {
+			if (rGraph != null)
+			{
+				try {
+					graphEngine.destroyGraph("test0" );
+				} catch (RemoteException e) {
+					// do nothing.
+				}
+			}
+		}
+
+	};
+
+	@Inject
+	public IProducer<RMI_GraphEventManager> getGraphProducer() {
+		return eventManagerProducer;
+	}
+
+	
+}
\ No newline at end of file

Propchange: jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphEventManagerTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphTest.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphTest.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphTest.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,131 @@
+package og.apache.jena.rmi.client;
+
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+import java.util.Iterator;
+
+import org.apache.jena.rmi.shared.RMI_Graph;
+import org.apache.jena.rmi.shared.remote.GraphExistsException;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteGraphEngine;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.Contract.Inject;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
+import org.xenei.junit.contract.IProducer;
+
+import static org.junit.Assert.*;
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphStatisticsHandler;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Node_URI;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.mem.GraphMem;
+import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
+import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
+
+@RunWith(ContractSuite.class)
+@ContractImpl(RMI_Graph.class)
+public class GraphTest {
+
+	static RemoteGraphEngine graphEngine;
+
+	@BeforeClass
+	public static void beforeClass() throws Exception {
+		if (System.getSecurityManager() == null) {
+			System.setSecurityManager(new SecurityManager());
+		}
+
+		String name = "GraphEngine";
+		Registry registry = LocateRegistry.getRegistry();
+		graphEngine = (RemoteGraphEngine) registry.lookup(name);
+
+	}
+
+	protected IProducer<RMI_Graph> graphProducer = new AbstractGraphProducer<RMI_Graph>() {
+
+		int i = 0;
+
+		@Override
+		protected RMI_Graph createNewGraph() {
+			RemoteGraph rg = null;
+			try {	
+				try {
+					rg = graphEngine.createGraph("test"
+							+ (i++));
+				}
+				catch (GraphExistsException e)
+				{
+					graphEngine.destroyGraph("test"+ i);
+					rg = graphEngine.createGraph("test"+ i );
+				}
+			
+				RMI_Graph g = new RMI_Graph(rg);
+				return g;
+			} catch (RemoteException e) {
+				throw new RuntimeException(e);
+			}
+		}
+
+		@Override
+		public Graph[] getDependsOn(Graph g) {
+			return null;
+		}
+
+		@Override
+		public Graph[] getNotDependsOn(Graph g) {
+			return new Graph[] { new GraphMem() };
+		}
+
+		@Override
+		protected void afterClose(Graph g) {
+			if (g instanceof RMI_Graph) {
+				try {
+					graphEngine.destroyGraph(((RMI_Graph) g).getName());
+				} catch (RemoteException e) {
+					throw new RuntimeException(e);
+				}
+			}
+			super.afterClose(g);
+		}
+
+	};
+
+	@Inject
+	public IProducer<RMI_Graph> getGraphProducer() {
+		return graphProducer;
+	}
+
+	@ContractTest
+	public void testHasStatistics() {
+		GraphStatisticsHandler h = graphProducer.newInstance()
+				.getStatisticsHandler();
+		assertNotNull(h);
+	}
+
+	@ContractTest
+	public void testUnnecessaryMatches() {
+		Node special = new Node_URI("eg:foo") {
+			@Override
+			public boolean matches(Node s) {
+				fail("Matched called superfluously.");
+				return true;
+			}
+		};
+		Graph g = graphWith(graphProducer.newInstance(), "x p y");
+		g.add(new Triple(special, special, special));
+		exhaust(g.find(special, Node.ANY, Node.ANY));
+		exhaust(g.find(Node.ANY, special, Node.ANY));
+		exhaust(g.find(Node.ANY, Node.ANY, special));
+
+	}
+
+	protected void exhaust(Iterator<?> it) {
+		while (it.hasNext())
+			it.next();
+	}
+
+}
\ No newline at end of file

Propchange: jena/Experimental/jena-rmi/jena-rmi-client/src/test/java/og/apache/jena/rmi/client/GraphTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-server/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-server/pom.xml?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-server/pom.xml (added)
+++ jena/Experimental/jena-rmi/jena-rmi-server/pom.xml Sun Jan  5 18:21:09 2014
@@ -0,0 +1,72 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.xenei</groupId>
+    <artifactId>jena-rmi</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>jena-rmi-server</artifactId>
+  <name>Apache Jena - RMI Server</name>
+  <dependencies>
+  	<dependency>
+  		<groupId>org.apache.jena</groupId>
+  		<artifactId>jena-core</artifactId>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.apache.commons</groupId>
+  		<artifactId>commons-lang3</artifactId>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.xenei</groupId>
+  		<artifactId>jena-rmi-shared</artifactId>
+  	</dependency>
+  </dependencies>
+  
+  <build>
+        <plugins>
+        <!-- 
+           <plugin>
+                <groupId>org.dstovall</groupId>
+                <artifactId>onejar-maven-plugin</artifactId>
+                <version>${onejar.version}</version>
+                <executions>
+                    <execution>
+                        <configuration>
+                            <mainClass>org.apache.jena.rmi.server.GraphEngine</mainClass>
+                      
+                            <onejarVersion>0.97</onejarVersion>                        
+                
+                            <attachToBuild>true</attachToBuild>
+                
+                            <classifier>onejar</classifier>
+                        </configuration>
+                        <goals>
+                            <goal>one-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            -->
+            <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${shade.version}</version>
+        <configuration>
+          <transformers>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                  <mainClass>org.apache.jena.rmi.server.GraphEngine</mainClass>
+                </transformer>
+              </transformers>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

Propchange: jena/Experimental/jena-rmi/jena-rmi-server/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-server/server.policy
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-server/server.policy?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-server/server.policy (added)
+++ jena/Experimental/jena-rmi/jena-rmi-server/server.policy Sun Jan  5 18:21:09 2014
@@ -0,0 +1,4 @@
+grant {
+	permission java.security.AllPermission;
+};
+

Added: jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/GraphEngine.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/GraphEngine.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/GraphEngine.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/GraphEngine.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,92 @@
+package org.apache.jena.rmi.server;
+
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+import java.rmi.server.UnicastRemoteObject;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.jena.rmi.shared.RemoteGraphImpl;
+import org.apache.jena.rmi.shared.remote.GraphExistsException;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteGraphEngine;
+import com.hp.hpl.jena.mem.GraphMem;
+import com.hp.hpl.jena.shared.NotFoundException;
+
+public class GraphEngine implements RemoteGraphEngine {
+
+	public Map<String, RemoteGraph> lst = new HashMap<String, RemoteGraph>();
+
+	public static void main(String[] args) {
+		if (System.getSecurityManager() == null) {
+			System.setSecurityManager(new SecurityManager());
+		}
+
+		try {
+			String name = "GraphEngine";
+			RemoteGraphEngine engine = new GraphEngine();
+			RemoteGraphEngine stub = (RemoteGraphEngine) UnicastRemoteObject
+					.exportObject(engine, 0);
+			Registry registry = LocateRegistry.getRegistry();
+
+			registry.rebind(name, stub);
+			System.out.println("GraphEngine bound");
+		} catch (Exception e) {
+			System.err.println("GraphEngine exception:");
+			e.printStackTrace();
+		}
+	}
+
+	public static void addCodeBaseFor(Class<?> clazz) {
+		System.setProperty("java.rmi.server.codebase", clazz
+				.getProtectionDomain().getCodeSource().getLocation().toString());
+	}
+
+	// public static void setPolicy() {
+	// System.setProperty("java.security.policy",
+	// PolicyFileLocator.getLocationOfPolicyFile());
+	// }
+
+	public static void setHost(String hostAddress) {
+		System.setProperty("java.rmi.server.hostname", hostAddress);
+	}
+
+	public static String getHost() {
+		return System.getProperty("java.rmi.server.hostname");
+	}
+
+	protected GraphEngine() throws RemoteException {
+		super();
+	}
+
+	@Override
+	public synchronized RemoteGraph getGraph(String graphName)
+			throws RemoteException {
+		RemoteGraph g = lst.get(graphName);
+		if (g == null) {
+			throw new NotFoundException(graphName);
+		}
+		return g;
+	}
+
+	@Override
+	public synchronized RemoteGraph createGraph(String graphName)
+			throws RemoteException {
+		RemoteGraph g = lst.get(graphName);
+		if (g == null) {
+			g = new RemoteGraphImpl(graphName, new GraphMem());
+			lst.put(graphName, g);
+			return g;
+		}
+		throw new GraphExistsException(graphName);
+
+	}
+
+	@Override
+	public synchronized void destroyGraph(String graphName)
+			throws RemoteException {
+		lst.remove(graphName);
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-server/src/main/java/org/apache/jena/rmi/server/GraphEngine.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Jan  5 18:21:09 2014
@@ -0,0 +1,7 @@
+.settings
+
+target
+
+.project
+
+.classpath

Added: jena/Experimental/jena-rmi/jena-rmi-shared/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/pom.xml?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/pom.xml (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/pom.xml Sun Jan  5 18:21:09 2014
@@ -0,0 +1,20 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.xenei</groupId>
+    <artifactId>jena-rmi</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>jena-rmi-shared</artifactId>
+  <dependencies>
+  	<dependency>
+  		<groupId>org.apache.jena</groupId>
+  		<artifactId>jena-core</artifactId>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.apache.commons</groupId>
+  		<artifactId>commons-lang3</artifactId>
+  	</dependency>
+  </dependencies>
+  <name>Apache Jena - RMI Shared Library</name>
+</project>
\ No newline at end of file

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_Graph.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_Graph.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_Graph.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_Graph.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,389 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.jena.rmi.shared.remote.RemoteCapabilities;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteNode;
+import org.apache.jena.rmi.shared.remote.RemoteTriple;
+
+import com.hp.hpl.jena.graph.BulkUpdateHandler;
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphStatisticsHandler;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.graph.TripleMatch;
+import com.hp.hpl.jena.shared.AddDeniedException;
+import com.hp.hpl.jena.shared.ClosedException;
+import com.hp.hpl.jena.shared.DeleteDeniedException;
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.util.iterator.WrappedIterator;
+
+public class RMI_Graph implements Graph {
+
+	private RemoteGraph rGraph;
+	private String name;
+	private RemoteCapabilities capabilities;
+	private RMI_PrefixMapping prefixMapping;
+	private RMI_TransactionHandler transactionHandler;
+	private RMI_GraphEventManager eventManager;
+	private RMI_GraphStatisticsHandler statisticsHandler;
+
+	public static final RMI_Graph create(Graph g) throws RemoteException {
+		return create(UUID.randomUUID().toString(), g);
+	}
+
+	public static final RMI_Graph create(String name, Graph g)
+			throws RemoteException {
+		if (g instanceof RMI_Graph) {
+			return (RMI_Graph) g;
+		}
+		RMI_Graph retval = new RMI_Graph(new RemoteGraphImpl(name, g));
+		return retval;
+	}
+
+	public RMI_Graph(RemoteGraph rGraph) {
+		this.rGraph = rGraph;
+		try {
+			this.name = rGraph.getName();
+		} catch (RemoteException e) {
+			throw new JenaException("Unable to retrieve graph name", e);
+		}
+	}
+
+	public RemoteGraph getRemoteGraph() {
+		return rGraph;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	@Override
+	public boolean dependsOn(Graph other) {
+		verifyOpen();
+		try {
+			return rGraph.dependsOn(RMI_Graph.create(other).getRemoteGraph());
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public RMI_TransactionHandler getTransactionHandler() {
+		verifyOpen();
+		if (transactionHandler == null) {
+			try {
+				transactionHandler = new RMI_TransactionHandler(
+						rGraph.getTransactionHandler());
+			} catch (RemoteException e) {
+				throw new JenaException(e);
+			}
+		}
+		return transactionHandler;
+	}
+
+	@Override
+	@Deprecated
+	public BulkUpdateHandler getBulkUpdateHandler() {
+		verifyOpen();
+		return new BUH();
+	}
+
+	@Override
+	public RemoteCapabilities getCapabilities() {
+		verifyOpen();
+		if (capabilities == null) {
+			try {
+				capabilities = rGraph.getCapabilities();
+			} catch (RemoteException e) {
+				throw new JenaException(e);
+			}
+		}
+		return capabilities;
+	}
+
+	@Override
+	public RMI_GraphEventManager getEventManager() {
+		verifyOpen();
+		if (eventManager == null) {
+			try {
+				eventManager = new RMI_GraphEventManager(
+						rGraph.getEventManager());
+			} catch (RemoteException e) {
+				throw new JenaException(e);
+			} catch (NotBoundException e) {
+				throw new JenaException(e);
+			}
+		}
+		return eventManager;
+	}
+
+	@Override
+	public GraphStatisticsHandler getStatisticsHandler() {
+		verifyOpen();
+		if (statisticsHandler == null) {
+			try {
+				statisticsHandler = new RMI_GraphStatisticsHandler(
+						rGraph.getStatisticsHandler());
+			} catch (RemoteException e) {
+				throw new JenaException(e);
+			}
+		}
+		return statisticsHandler;
+	}
+
+	@Override
+	public PrefixMapping getPrefixMapping() {
+		verifyOpen();
+		if (prefixMapping == null) {
+			try {
+				prefixMapping = new RMI_PrefixMapping(rGraph.getPrefixMapping());
+			} catch (RemoteException e) {
+				throw new JenaException(e);
+			}
+		}
+		return prefixMapping;
+	}
+
+	@Override
+	public void add(Triple t) throws AddDeniedException {
+		verifyOpen();
+		try {
+			rGraph.add(new RemoteTriple(t));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void delete(Triple t) throws DeleteDeniedException {
+		verifyOpen();
+		try {
+			rGraph.delete(new RemoteTriple(t));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public ExtendedIterator<Triple> find(TripleMatch m) {
+		verifyOpen();
+		try {
+			Iterator<RemoteTriple> iter = RMI_RemoteIterator.create(rGraph
+					.find(new RemoteTriple(m.asTriple())));
+			return WrappedIterator.create(iter)
+					.mapWith(RemoteTriple.FromRemote);
+
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public ExtendedIterator<Triple> find(Node s, Node p, Node o) {
+		verifyOpen();
+		RemoteNode rs = RemoteNode.create(s);
+		RemoteNode rp = RemoteNode.create(p);
+		RemoteNode ro = RemoteNode.create(o);
+		try {
+			Iterator<RemoteTriple> iter = RMI_RemoteIterator.create(rGraph
+					.find(rs, rp, ro));
+			return WrappedIterator.create(iter)
+					.mapWith(RemoteTriple.FromRemote);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public boolean isIsomorphicWith(Graph g) {
+		verifyOpen();
+		try {
+			return rGraph
+					.isIsomorphicWith(RMI_Graph.create(g).getRemoteGraph());
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public boolean contains(Node s, Node p, Node o) {
+		verifyOpen();
+		try {
+			return rGraph.contains(RemoteNode.create(s), RemoteNode.create(p),
+					RemoteNode.create(o));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public boolean contains(Triple t) {
+		verifyOpen();
+		try {
+			return rGraph.contains(new RemoteTriple(t));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void clear() {
+		verifyOpen();
+		try {
+			rGraph.clear();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void remove(Node s, Node p, Node o) {
+		verifyOpen();
+		try {
+			rGraph.remove(RemoteNode.create(s), RemoteNode.create(p),
+					RemoteNode.create(o));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void close() {
+		// only close the local copy
+		rGraph = null;
+	}
+
+	@Override
+	public boolean isEmpty() {
+		verifyOpen();
+		try {
+			return rGraph.isEmpty();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public int size() {
+		verifyOpen();
+		try {
+			return rGraph.size();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	private void verifyOpen() {
+		if (rGraph == null) {
+			throw new ClosedException("Graph already closed", this);
+		}
+	}
+
+	@Override
+	public boolean isClosed() {
+		if (rGraph == null) {
+			return true;
+		}
+		try {
+			return rGraph.isClosed();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	private class BUH implements BulkUpdateHandler {
+
+		@Override
+		@Deprecated
+		public void add(Triple[] triples) {
+			for (Triple t : triples) {
+				RMI_Graph.this.add(t);
+			}
+		}
+
+		@Override
+		@Deprecated
+		public void add(List<Triple> triples) {
+			for (Triple t : triples) {
+				RMI_Graph.this.add(t);
+			}
+		}
+
+		@Override
+		@Deprecated
+		public void add(Iterator<Triple> it) {
+			while (it.hasNext()) {
+				RMI_Graph.this.add(it.next());
+			}
+		}
+
+		@Override
+		@Deprecated
+		public void add(Graph g, boolean withReifications) {
+			add(g);
+		}
+
+		@Override
+		@Deprecated
+		public void add(Graph g) {
+			add(g.find(Triple.ANY));
+		}
+
+		@Override
+		@Deprecated
+		public void delete(Triple[] triples) {
+			for (Triple t : triples) {
+				RMI_Graph.this.delete(t);
+			}
+		}
+
+		@Override
+		@Deprecated
+		public void delete(List<Triple> triples) {
+			for (Triple t : triples) {
+				RMI_Graph.this.delete(t);
+			}
+		}
+
+		@Override
+		@Deprecated
+		public void delete(Iterator<Triple> it) {
+			while (it.hasNext()) {
+				RMI_Graph.this.delete(it.next());
+			}
+		}
+
+		@Override
+		@Deprecated
+		public void delete(Graph g) {
+			delete(g.find(Triple.ANY));
+		}
+
+		@Override
+		@Deprecated
+		public void delete(Graph g, boolean withReifications) {
+			delete(g);
+		}
+
+		@Override
+		@Deprecated
+		public void removeAll() {
+			delete(find(Triple.ANY));
+		}
+
+		@Override
+		@Deprecated
+		public void remove(Node s, Node p, Node o) {
+			RMI_Graph.this.delete(new Triple(s, p, o));
+		}
+
+	}
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_Graph.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphEventManager.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphEventManager.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphEventManager.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphEventManager.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,106 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.jena.rmi.shared.remote.RemoteGraphEventManager;
+import org.apache.jena.rmi.shared.remote.RemoteGraphListener;
+import org.apache.jena.rmi.shared.remote.RemoteTriple;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphEventManager;
+import com.hp.hpl.jena.graph.GraphListener;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.util.iterator.WrappedIterator;
+
+public class RMI_GraphEventManager extends RMI_GraphListener implements
+		GraphEventManager {
+
+	private RemoteGraphEventManager remoteMgr;
+	private Map<GraphListener, RemoteGraphListener> map = new HashMap<GraphListener, RemoteGraphListener>();
+
+	public RMI_GraphEventManager(RemoteGraphEventManager remoteMgr) {
+		super(remoteMgr);
+		this.remoteMgr = remoteMgr;
+	}
+
+	@Override
+	public GraphEventManager register(GraphListener listener) {
+		RemoteGraphListener rgl = null;
+		try {
+			synchronized (map) {
+				rgl = map.get(listener);
+				if (rgl == null) {
+					rgl = new RemoteGraphListenerImpl(listener);
+					map.put(listener, rgl);
+				}
+			}
+			remoteMgr.register(rgl);
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		} catch (NotBoundException e) {
+			throw new JenaException(e);
+		}
+
+	}
+
+	@Override
+	public GraphEventManager unregister(GraphListener listener) {
+		RemoteGraphListener rgl = null;
+		synchronized (map) {
+			rgl = map.get(listener);
+
+		}
+		if (rgl != null) {
+			try {
+				remoteMgr.unregister(rgl);
+			} catch (RemoteException e) {
+				throw new JenaException(e);
+			}
+		}
+		return this;
+	}
+
+	@Override
+	public boolean listening() {
+		try {
+			return remoteMgr.listening();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyAddIterator(Graph g, List<Triple> triples) {
+
+		Iterator<RemoteTriple> iter = WrappedIterator
+				.create(triples.iterator()).mapWith(RemoteTriple.ToRemote);
+		;
+		try {
+			notifyAdd(g, RemoteGraphListener.Type.Iterator,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyDeleteIterator(Graph g, List<Triple> triples) {
+		Iterator<RemoteTriple> iter = WrappedIterator
+				.create(triples.iterator()).mapWith(RemoteTriple.ToRemote);
+		;
+		try {
+			notifyDelete(g, RemoteGraphListener.Type.Iterator,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphEventManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphListener.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphListener.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphListener.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphListener.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,195 @@
+package org.apache.jena.rmi.shared;
+
+import java.io.Serializable;
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.jena.rmi.shared.remote.RemoteGraphListener;
+import org.apache.jena.rmi.shared.remote.RemoteIterator;
+import org.apache.jena.rmi.shared.remote.RemoteTriple;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphListener;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.util.iterator.WrappedIterator;
+
+public class RMI_GraphListener implements GraphListener {
+	private RemoteGraphListener remoteListener;
+
+	private static Logger LOG = LoggerFactory
+			.getLogger(RMI_GraphListener.class);
+
+	public static RMI_GraphListener create(GraphListener listener)
+			throws RemoteException, NotBoundException {
+		if (listener instanceof RMI_GraphListener) {
+			return (RMI_GraphListener) listener;
+		}
+		return new RMI_GraphListener(new RemoteGraphListenerImpl(listener));
+	}
+
+	protected RMI_GraphListener(RemoteGraphListener listener) {
+		this.remoteListener = listener;
+	}
+
+	@Override
+	public void notifyAddTriple(Graph g, Triple t) {
+		try {
+			remoteListener.notifyAdd(RMI_Graph.create(g).getRemoteGraph(),
+					new RemoteTriple(t));
+		} catch (RemoteException e) {
+			LOG.warn("Unable to sent notification", e);
+		}
+	}
+
+	@Override
+	public void notifyAddArray(Graph g, Triple[] triples) {
+
+		Iterator<RemoteTriple> iter = WrappedIterator.create(
+				Arrays.asList(triples).iterator()).mapWith(
+				RemoteTriple.ToRemote);
+		try {
+			notifyAdd(g, RemoteGraphListener.Type.Array,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+
+	}
+
+	protected void notifyAdd(Graph g, RemoteGraphListener.Type type,
+			RemoteIterator<RemoteTriple> Triples) {
+		try {
+			remoteListener.notifyAdd(RMI_Graph.create(g).getRemoteGraph(),
+					type, Triples);
+		} catch (RemoteException e) {
+			LOG.warn("Unable to sent notification", e);
+		}
+
+	}
+
+	@Override
+	public void notifyAddList(Graph g, List<Triple> triples) {
+		Iterator<RemoteTriple> iter = WrappedIterator
+				.create(triples.iterator()).mapWith(RemoteTriple.ToRemote);
+		try {
+			notifyAdd(g, RemoteGraphListener.Type.Array,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyAddIterator(Graph g, Iterator<Triple> it) {
+		Iterator<RemoteTriple> iter = WrappedIterator.create(it).mapWith(
+				RemoteTriple.ToRemote);
+		try {
+			notifyAdd(g, RemoteGraphListener.Type.Array,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyAddGraph(Graph g, Graph added) {
+		try {
+			remoteListener.notifyAdd(RMI_Graph.create(g).getRemoteGraph(),
+					RMI_Graph.create(added).getRemoteGraph());
+		} catch (RemoteException e) {
+			LOG.warn("Unable to sent notification", e);
+		}
+
+	}
+
+	protected void notifyDelete(Graph g, RemoteGraphListener.Type type,
+			RemoteIterator<RemoteTriple> Triples) {
+		try {
+			remoteListener.notifyDelete(RMI_Graph.create(g).getRemoteGraph(),
+					type, Triples);
+		} catch (RemoteException e) {
+			LOG.warn("Unable to sent notification", e);
+		}
+
+	}
+
+	@Override
+	public void notifyDeleteTriple(Graph g, Triple t) {
+		try {
+			remoteListener.notifyDelete(RMI_Graph.create(g).getRemoteGraph(),
+					new RemoteTriple(t));
+		} catch (RemoteException e) {
+			LOG.warn("Unable to sent notification", e);
+		}
+
+	}
+
+	@Override
+	public void notifyDeleteList(Graph g, List<Triple> L) {
+		Iterator<RemoteTriple> iter = WrappedIterator.create(L.iterator())
+				.mapWith(RemoteTriple.ToRemote);
+		try {
+			notifyDelete(g, RemoteGraphListener.Type.Array,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyDeleteArray(Graph g, Triple[] triples) {
+		Iterator<RemoteTriple> iter = WrappedIterator.create(
+				Arrays.asList(triples).iterator()).mapWith(
+				RemoteTriple.ToRemote);
+		try {
+			notifyDelete(g, RemoteGraphListener.Type.Array,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyDeleteIterator(Graph g, Iterator<Triple> it) {
+		Iterator<RemoteTriple> iter = WrappedIterator.create(it).mapWith(
+				RemoteTriple.ToRemote);
+		try {
+			notifyDelete(g, RemoteGraphListener.Type.Array,
+					new RemoteIteratorImpl<RemoteTriple>(iter));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void notifyDeleteGraph(Graph g, Graph removed) {
+
+		try {
+			remoteListener.notifyDelete(RMI_Graph.create(g).getRemoteGraph(),
+					RMI_Graph.create(removed).getRemoteGraph());
+		} catch (RemoteException e) {
+			LOG.warn("Unable to sent notification", e);
+		}
+
+	}
+
+	@Override
+	public void notifyEvent(Graph source, Object value) {
+
+		if (value instanceof Serializable) {
+			try {
+				remoteListener.notifyEvent(RMI_Graph.create(source)
+						.getRemoteGraph(), value);
+			} catch (RemoteException e) {
+				LOG.warn("Unable to sent notification", e);
+			}
+		}
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphStatisticsHandler.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphStatisticsHandler.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphStatisticsHandler.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphStatisticsHandler.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,28 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.RemoteException;
+
+import org.apache.jena.rmi.shared.remote.RemoteGraphStatisticsHandler;
+import org.apache.jena.rmi.shared.remote.RemoteNode;
+
+import com.hp.hpl.jena.graph.GraphStatisticsHandler;
+import com.hp.hpl.jena.graph.Node;
+
+public class RMI_GraphStatisticsHandler implements GraphStatisticsHandler {
+	private RemoteGraphStatisticsHandler rgsh;
+
+	public RMI_GraphStatisticsHandler(RemoteGraphStatisticsHandler rgsh) {
+		this.rgsh = rgsh;
+	}
+
+	@Override
+	public long getStatistic(Node S, Node P, Node O) {
+		try {
+			return rgsh.getStatistic(RemoteNode.create(S),
+					RemoteNode.create(P), RemoteNode.create(O));
+		} catch (RemoteException e) {
+			return -1;
+		}
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_GraphStatisticsHandler.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_PrefixMapping.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_PrefixMapping.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_PrefixMapping.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_PrefixMapping.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,150 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.RemoteException;
+import java.util.Map;
+
+import org.apache.jena.rmi.shared.remote.RemotePrefixMapping;
+
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.shared.PrefixMapping;
+
+public class RMI_PrefixMapping implements PrefixMapping {
+	private RemotePrefixMapping pm;
+
+	public RMI_PrefixMapping(RemotePrefixMapping pm) {
+		this.pm = pm;
+	}
+
+	@Override
+	public PrefixMapping setNsPrefix(String prefix, String uri) {
+		try {
+			pm.setNsPrefix(prefix, uri);
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public PrefixMapping removeNsPrefix(String prefix) {
+		try {
+			pm.removeNsPrefix(prefix);
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	private RemotePrefixMapping createRemotePrefixMapping(PrefixMapping other)
+			throws RemoteException {
+		if (other instanceof RMI_PrefixMapping) {
+			return ((RMI_PrefixMapping) other).pm;
+		} else {
+			return new RemotePrefixMappingImpl(other);
+		}
+	}
+
+	@Override
+	public PrefixMapping setNsPrefixes(PrefixMapping other) {
+		try {
+			pm.setNsPrefixes(createRemotePrefixMapping(other));
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public PrefixMapping setNsPrefixes(Map<String, String> map) {
+		try {
+			pm.setNsPrefixes(RemotePrefixMappingImpl.makeSerializable(map));
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public PrefixMapping withDefaultMappings(PrefixMapping map) {
+		try {
+			pm.setNsPrefixes(createRemotePrefixMapping(map));
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public String getNsPrefixURI(String prefix) {
+		try {
+			return pm.getNsPrefixURI(prefix);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public String getNsURIPrefix(String uri) {
+		try {
+			return pm.getNsURIPrefix(uri);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public Map<String, String> getNsPrefixMap() {
+		try {
+			return pm.getNsPrefixMap();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public String expandPrefix(String prefixed) {
+		try {
+			return pm.expandPrefix(prefixed);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public String shortForm(String uri) {
+		try {
+			return pm.shortForm(uri);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public String qnameFor(String uri) {
+		try {
+			return pm.qnameFor(uri);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public PrefixMapping lock() {
+		try {
+			pm.lock();
+			return this;
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public boolean samePrefixMappingAs(PrefixMapping other) {
+		try {
+			return pm.samePrefixMappingAs(createRemotePrefixMapping(other));
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_PrefixMapping.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_RemoteIterator.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_RemoteIterator.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_RemoteIterator.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_RemoteIterator.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,49 @@
+package org.apache.jena.rmi.shared;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+import java.util.Iterator;
+
+import org.apache.jena.rmi.shared.remote.RemoteIterator;
+
+public class RMI_RemoteIterator<T extends Serializable> implements Iterator<T> {
+
+	private RemoteIterator<T> wrapped;
+
+	public static <T extends Serializable> Iterator<T> create(
+			RemoteIterator<T> wrapped) {
+		return new RMI_RemoteIterator<T>(wrapped);
+	}
+
+	private RMI_RemoteIterator(RemoteIterator<T> wrapped) {
+		this.wrapped = wrapped;
+	}
+
+	@Override
+	public boolean hasNext() {
+		try {
+			return wrapped.hasNext();
+		} catch (RemoteException e) {
+			return false;
+		}
+	}
+
+	@Override
+	public T next() {
+		try {
+			return wrapped.next();
+		} catch (RemoteException e) {
+			throw new IllegalStateException(e);
+		}
+	}
+
+	@Override
+	public void remove() {
+		try {
+			wrapped.remove();
+		} catch (RemoteException e) {
+			throw new IllegalStateException(e);
+		}
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_RemoteIterator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_TransactionHandler.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_TransactionHandler.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_TransactionHandler.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_TransactionHandler.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,64 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.RemoteException;
+
+import org.apache.jena.rmi.shared.remote.RemoteTransactionHandler;
+
+import com.hp.hpl.jena.graph.TransactionHandler;
+import com.hp.hpl.jena.shared.Command;
+import com.hp.hpl.jena.shared.JenaException;
+
+public class RMI_TransactionHandler implements TransactionHandler {
+
+	private RemoteTransactionHandler rth;
+
+	public RMI_TransactionHandler(RemoteTransactionHandler rth) {
+		this.rth = rth;
+	}
+
+	@Override
+	public boolean transactionsSupported() {
+		try {
+			return rth.transactionsSupported();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void begin() {
+		try {
+			rth.begin();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void abort() {
+		try {
+			rth.abort();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public void commit() {
+		try {
+			rth.commit();
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+	@Override
+	public Object executeInTransaction(Command c) {
+		try {
+			return rth.executeInTransaction(c);
+		} catch (RemoteException e) {
+			throw new JenaException(e);
+		}
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RMI_TransactionHandler.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphEventManagerImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphEventManagerImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphEventManagerImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphEventManagerImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,62 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.jena.rmi.shared.remote.RemoteGraphEventManager;
+import org.apache.jena.rmi.shared.remote.RemoteGraphListener;
+
+import com.hp.hpl.jena.graph.GraphEventManager;
+
+public class RemoteGraphEventManagerImpl extends RemoteGraphListenerImpl
+		implements RemoteGraphEventManager {
+
+	private static final long serialVersionUID = -1944589946996952294L;
+	private GraphEventManager em;
+	private Map<RemoteGraphListener, List<RMI_GraphListener>> map = new HashMap<RemoteGraphListener, List<RMI_GraphListener>>();
+
+	public RemoteGraphEventManagerImpl(GraphEventManager em)
+			throws RemoteException, NotBoundException {
+		super(em);
+		this.em = em;
+	}
+
+	@Override
+	public RemoteGraphEventManager register(RemoteGraphListener listener)
+			throws RemoteException {
+		synchronized (map) {
+			List<RMI_GraphListener> lst = map.get(listener);
+			if (lst == null) {
+				lst = new ArrayList<RMI_GraphListener>();
+				map.put(listener, lst);
+			}
+			RMI_GraphListener l = new RMI_GraphListener(listener);
+			lst.add(l);
+			em.register(l);
+		}
+		return this;
+	}
+
+	@Override
+	public RemoteGraphEventManager unregister(RemoteGraphListener listener)
+			throws RemoteException {
+		synchronized (map) {
+			List<RMI_GraphListener> lst = map.get(listener);
+			if (lst != null) {
+				RMI_GraphListener l = lst.remove(lst.size() - 1);
+				em.unregister(l);
+			}
+		}
+		return this;
+	}
+
+	@Override
+	public boolean listening() throws RemoteException {
+		return em.listening();
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphEventManagerImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,159 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+import org.apache.jena.rmi.shared.RMI_Graph;
+import org.apache.jena.rmi.shared.remote.RemoteCapabilities;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteGraphEventManager;
+import org.apache.jena.rmi.shared.remote.RemoteGraphStatisticsHandler;
+import org.apache.jena.rmi.shared.remote.RemoteIterator;
+import org.apache.jena.rmi.shared.remote.RemoteNode;
+import org.apache.jena.rmi.shared.remote.RemotePrefixMapping;
+import org.apache.jena.rmi.shared.remote.RemoteTransactionHandler;
+import org.apache.jena.rmi.shared.remote.RemoteTriple;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.shared.AddDeniedException;
+import com.hp.hpl.jena.shared.DeleteDeniedException;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+
+public class RemoteGraphImpl extends UnicastRemoteObject implements RemoteGraph {
+
+	private static final long serialVersionUID = 2850582873636797611L;
+	private Graph graph;
+	private String name;
+
+	private RemoteGraphEventManager em;
+	private RemotePrefixMapping rpm;
+
+	public RemoteGraphImpl(String name, Graph graph) throws RemoteException {
+		super();
+		this.graph = graph;
+		this.name = name;
+	}
+
+	public Graph getGraph() {
+		return graph;
+	}
+
+	@Override
+	public String getName() throws RemoteException {
+		return name;
+	}
+
+	@Override
+	public boolean dependsOn(RemoteGraph other) throws RemoteException {
+		return graph.dependsOn(new RMI_Graph(other));
+	}
+
+	@Override
+	public RemoteTransactionHandler getTransactionHandler()
+			throws RemoteException {
+		return new RemoteTransactionHandlerImpl(graph.getTransactionHandler());
+	}
+
+	@Override
+	public RemoteCapabilities getCapabilities() throws RemoteException {
+		return RemoteCapabilities.construct(graph.getCapabilities());
+	}
+
+	@Override
+	public RemoteGraphEventManager getEventManager() throws RemoteException,
+			NotBoundException {
+		if (em == null) {
+			em = new RemoteGraphEventManagerImpl(graph.getEventManager());
+		}
+		return em;
+	}
+
+	@Override
+	public RemoteGraphStatisticsHandler getStatisticsHandler()
+			throws RemoteException {
+		return new RemoteGraphStatisticsHandlerImpl(
+				graph.getStatisticsHandler());
+	}
+
+	@Override
+	public RemotePrefixMapping getPrefixMapping() throws RemoteException {
+		if (rpm == null) {
+			rpm = new RemotePrefixMappingImpl(graph.getPrefixMapping());
+		}
+		return rpm;
+	}
+
+	@Override
+	public void add(RemoteTriple t) throws AddDeniedException, RemoteException {
+		graph.add(t.asTriple());
+	}
+
+	@Override
+	public void delete(RemoteTriple t) throws DeleteDeniedException,
+			RemoteException {
+		graph.delete(t.asTriple());
+	}
+
+	@Override
+	public RemoteIterator<RemoteTriple> find(RemoteTriple m)
+			throws RemoteException {
+		return new RemoteIteratorImpl<RemoteTriple>(graph.find(m.asTriple())
+				.mapWith(RemoteTriple.ToRemote));
+	}
+
+	@Override
+	public RemoteIterator<RemoteTriple> find(RemoteNode s, RemoteNode p,
+			RemoteNode o) throws RemoteException {
+		ExtendedIterator<RemoteTriple> t = graph.find(s.asNode(), p.asNode(),
+				o.asNode()).mapWith(RemoteTriple.ToRemote);
+		return new RemoteIteratorImpl<RemoteTriple>(t);
+	}
+
+	@Override
+	public boolean isIsomorphicWith(RemoteGraph g) throws RemoteException {
+		return graph.isIsomorphicWith(new RMI_Graph(g));
+	}
+
+	@Override
+	public boolean contains(RemoteNode s, RemoteNode p, RemoteNode o)
+			throws RemoteException {
+		return graph.contains(s.asNode(), p.asNode(), o.asNode());
+	}
+
+	@Override
+	public boolean contains(RemoteTriple t) throws RemoteException {
+		return graph.contains(t.asTriple());
+	}
+
+	@Override
+	public void clear() throws RemoteException {
+		graph.clear();
+	}
+
+	@Override
+	public void remove(RemoteNode s, RemoteNode p, RemoteNode o)
+			throws RemoteException {
+		graph.remove(s.asNode(), p.asNode(), o.asNode());
+	}
+
+	@Override
+	public void close() throws RemoteException {
+		graph.close();
+	}
+
+	@Override
+	public boolean isEmpty() throws RemoteException {
+		return graph.isEmpty();
+	}
+
+	@Override
+	public int size() throws RemoteException {
+		return graph.size();
+	}
+
+	@Override
+	public boolean isClosed() throws RemoteException {
+		return graph.isClosed();
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphListenerImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphListenerImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphListenerImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphListenerImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,107 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+import java.util.Iterator;
+import org.apache.jena.rmi.shared.remote.RemoteGraph;
+import org.apache.jena.rmi.shared.remote.RemoteGraphListener;
+import org.apache.jena.rmi.shared.remote.RemoteIterator;
+import org.apache.jena.rmi.shared.remote.RemoteTriple;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.graph.GraphListener;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.util.iterator.WrappedIterator;
+
+public class RemoteGraphListenerImpl extends UnicastRemoteObject implements
+		RemoteGraphListener {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	private static final Logger LOG = LoggerFactory
+			.getLogger(RemoteGraphListenerImpl.class);
+	private GraphListener em;
+
+	public RemoteGraphListenerImpl(GraphListener em) throws RemoteException,
+			NotBoundException {
+		super();
+		this.em = em;
+
+	}
+
+	@Override
+	public void notifyAdd(RemoteGraph g, RemoteTriple t) throws RemoteException {
+		em.notifyAddTriple(new RMI_Graph(g), t.asTriple());
+	}
+
+	@Override
+	public void notifyAdd(RemoteGraph rg, Type type,
+			RemoteIterator<RemoteTriple> triples) throws RemoteException {
+		RMI_Graph g = new RMI_Graph(rg);
+		Iterator<RemoteTriple> rIter = RMI_RemoteIterator.create(triples);
+		ExtendedIterator<Triple> iter = WrappedIterator.create(rIter).mapWith(
+				RemoteTriple.FromRemote);
+		switch (type) {
+		case Array:
+			em.notifyAddArray(g, iter.toList().toArray(new Triple[0]));
+			break;
+		case Iterator:
+			em.notifyAddIterator(g, iter);
+		case List:
+			em.notifyAddList(g, iter.toList());
+		default:
+			LOG.error("Unexpected type " + type);
+			throw new RemoteException("Unexpected type " + type);
+		}
+	}
+
+	@Override
+	public void notifyAdd(RemoteGraph g, RemoteGraph added)
+			throws RemoteException {
+		em.notifyAddGraph(new RMI_Graph(g), new RMI_Graph(added));
+	}
+
+	@Override
+	public void notifyDelete(RemoteGraph g, RemoteTriple t)
+			throws RemoteException {
+		em.notifyDeleteTriple(new RMI_Graph(g), t.asTriple());
+	}
+
+	@Override
+	public void notifyDelete(RemoteGraph rg, Type type,
+			RemoteIterator<RemoteTriple> triples) throws RemoteException {
+		RMI_Graph g = new RMI_Graph(rg);
+		Iterator<RemoteTriple> rIter = RMI_RemoteIterator.create(triples);
+		ExtendedIterator<Triple> iter = WrappedIterator.create(rIter).mapWith(
+				RemoteTriple.FromRemote);
+		switch (type) {
+		case Array:
+			em.notifyDeleteArray(g, iter.toList().toArray(new Triple[0]));
+			break;
+		case Iterator:
+			em.notifyDeleteIterator(g, iter);
+		case List:
+			em.notifyDeleteList(g, iter.toList());
+		default:
+			LOG.error("Unexpected type " + type);
+			throw new RemoteException("Unexpected type " + type);
+		}
+	}
+
+	@Override
+	public void notifyDelete(RemoteGraph g, RemoteGraph removed)
+			throws RemoteException {
+		em.notifyDeleteGraph(new RMI_Graph(g), new RMI_Graph(removed));
+	}
+
+	@Override
+	public void notifyEvent(RemoteGraph g, Object value) throws RemoteException {
+		em.notifyEvent(new RMI_Graph(g), value);
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphListenerImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphStatisticsHandlerImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphStatisticsHandlerImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphStatisticsHandlerImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphStatisticsHandlerImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,29 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+
+import org.apache.jena.rmi.shared.remote.RemoteGraphStatisticsHandler;
+import org.apache.jena.rmi.shared.remote.RemoteNode;
+
+import com.hp.hpl.jena.graph.GraphStatisticsHandler;
+
+public class RemoteGraphStatisticsHandlerImpl extends UnicastRemoteObject
+		implements RemoteGraphStatisticsHandler {
+
+	private static final long serialVersionUID = -1049555222940831135L;
+	private GraphStatisticsHandler gsh;
+
+	public RemoteGraphStatisticsHandlerImpl(GraphStatisticsHandler gsh)
+			throws RemoteException {
+		super();
+		this.gsh = gsh;
+	}
+
+	@Override
+	public long getStatistic(RemoteNode S, RemoteNode P, RemoteNode O)
+			throws RemoteException {
+		return gsh.getStatistic(S.asNode(), P.asNode(), O.asNode());
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteGraphStatisticsHandlerImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteIteratorImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteIteratorImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteIteratorImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteIteratorImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,36 @@
+package org.apache.jena.rmi.shared;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+import java.util.Iterator;
+
+import org.apache.jena.rmi.shared.remote.RemoteIterator;
+
+public class RemoteIteratorImpl<T extends Serializable> extends
+		UnicastRemoteObject implements RemoteIterator<T> {
+
+	private static final long serialVersionUID = 3485559617280172013L;
+	private Iterator<T> wrapped;
+
+	public RemoteIteratorImpl(Iterator<T> wrapped) throws RemoteException {
+		super();
+		this.wrapped = wrapped;
+	}
+
+	@Override
+	public boolean hasNext() throws RemoteException {
+		return wrapped.hasNext();
+	}
+
+	@Override
+	public T next() throws RemoteException {
+		return wrapped.next();
+	}
+
+	@Override
+	public void remove() throws RemoteException {
+		wrapped.remove();
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteIteratorImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemotePrefixMappingImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemotePrefixMappingImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemotePrefixMappingImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemotePrefixMappingImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,110 @@
+package org.apache.jena.rmi.shared;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.jena.rmi.shared.remote.RemotePrefixMapping;
+
+import com.hp.hpl.jena.shared.PrefixMapping;
+
+public class RemotePrefixMappingImpl extends UnicastRemoteObject implements
+		RemotePrefixMapping {
+	
+	private static final long serialVersionUID = -4458373363085254243L;
+	private PrefixMapping pm;
+
+	public RemotePrefixMappingImpl(PrefixMapping pm) throws RemoteException {
+		super();
+		this.pm = pm;
+	}
+
+	@Override
+	public RemotePrefixMapping setNsPrefix(String prefix, String uri)
+			throws RemoteException {
+		pm.setNsPrefix(prefix, uri);
+		return this;
+	}
+
+	@Override
+	public RemotePrefixMapping removeNsPrefix(String prefix)
+			throws RemoteException {
+		pm.removeNsPrefix(prefix);
+		return this;
+
+	}
+
+	@Override
+	public RemotePrefixMapping setNsPrefixes(RemotePrefixMapping other)
+			throws RemoteException {
+		pm.setNsPrefixes(new RMI_PrefixMapping(other));
+		return this;
+	}
+
+	@Override
+	public RemotePrefixMapping setNsPrefixes(Map<String, String> map)
+			throws RemoteException {
+		pm.setNsPrefixes(map);
+		return this;
+	}
+
+	@Override
+	public RemotePrefixMapping withDefaultMappings(RemotePrefixMapping map)
+			throws RemoteException {
+		pm.withDefaultMappings(new RMI_PrefixMapping(map));
+		return this;
+	}
+
+	@Override
+	public String getNsPrefixURI(String prefix) throws RemoteException {
+		return pm.getNsPrefixURI(prefix);
+	}
+
+	@Override
+	public String getNsURIPrefix(String uri) throws RemoteException {
+		return pm.getNsURIPrefix(uri);
+	}
+
+	@Override
+	public Map<String, String> getNsPrefixMap() throws RemoteException {
+		return makeSerializable(pm.getNsPrefixMap());
+	}
+
+	@Override
+	public String expandPrefix(String prefixed) throws RemoteException {
+		return pm.expandPrefix(prefixed);
+	}
+
+	@Override
+	public String shortForm(String uri) throws RemoteException {
+		return pm.shortForm(uri);
+	}
+
+	@Override
+	public String qnameFor(String uri) throws RemoteException {
+		return pm.qnameFor(uri);
+	}
+
+	@Override
+	public RemotePrefixMapping lock() throws RemoteException {
+		pm.lock();
+		return this;
+	}
+
+	@Override
+	public boolean samePrefixMappingAs(RemotePrefixMapping other)
+			throws RemoteException {
+		return pm.samePrefixMappingAs(new RMI_PrefixMapping(other));
+	}
+
+	public static Map<String, String> makeSerializable(Map<String, String> map) {
+		Map<String, String> retval = map;
+		if (!(map instanceof Serializable)) {
+			retval = new HashMap<String, String>();
+			retval.putAll(map);
+		}
+		return retval;
+	}
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemotePrefixMappingImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteTransactionHandlerImpl.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteTransactionHandlerImpl.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteTransactionHandlerImpl.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteTransactionHandlerImpl.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,48 @@
+package org.apache.jena.rmi.shared;
+
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+
+import org.apache.jena.rmi.shared.remote.RemoteTransactionHandler;
+
+import com.hp.hpl.jena.graph.TransactionHandler;
+import com.hp.hpl.jena.shared.Command;
+
+public class RemoteTransactionHandlerImpl extends UnicastRemoteObject implements
+		RemoteTransactionHandler {
+
+	private static final long serialVersionUID = 5093113235785722635L;
+	private TransactionHandler th;
+
+	public RemoteTransactionHandlerImpl(TransactionHandler th)
+			throws RemoteException {
+		super();
+		this.th = th;
+	}
+
+	@Override
+	public boolean transactionsSupported() throws RemoteException {
+		return th.transactionsSupported();
+	}
+
+	@Override
+	public void begin() throws RemoteException {
+		th.begin();
+	}
+
+	@Override
+	public void abort() throws RemoteException {
+		th.abort();
+	}
+
+	@Override
+	public void commit() throws RemoteException {
+		th.commit();
+	}
+
+	@Override
+	public Object executeInTransaction(Command c) throws RemoteException {
+		return th.executeInTransaction(c);
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/RemoteTransactionHandlerImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/GraphExistsException.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/GraphExistsException.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/GraphExistsException.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/GraphExistsException.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,19 @@
+package org.apache.jena.rmi.shared.remote;
+
+import com.hp.hpl.jena.shared.JenaException;
+
+public class GraphExistsException extends JenaException {
+	
+	private static final long serialVersionUID = -6334403104189748233L;
+	private String graphName;
+
+	public GraphExistsException(String graphName) {
+		super(String.format("Graph %s alreadys exists", graphName));
+		this.graphName = graphName;
+	}
+
+	public String getGraphName() {
+		return graphName;
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/GraphExistsException.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/NodeType.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/NodeType.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/NodeType.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/NodeType.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,14 @@
+package org.apache.jena.rmi.shared.remote;
+
+import java.io.Serializable;
+
+public interface NodeType extends Serializable {
+	static final byte _ANY = 0x00;
+	static final byte _ANON = 0x01;
+	static final byte _LIT = 0x02;
+	static final byte _URI = 0x03;
+	static final byte _VAR = 0x04;
+
+	//
+	static final byte _COMPRESSED = 0x10; // compressed literal
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/NodeType.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteCapabilities.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteCapabilities.java?rev=1555602&view=auto
==============================================================================
--- jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteCapabilities.java (added)
+++ jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteCapabilities.java Sun Jan  5 18:21:09 2014
@@ -0,0 +1,82 @@
+package org.apache.jena.rmi.shared.remote;
+
+import java.io.Serializable;
+
+import com.hp.hpl.jena.graph.Capabilities;
+
+public class RemoteCapabilities implements Serializable, Capabilities {
+
+	private static final long serialVersionUID = -3083244116679797251L;
+	private boolean sizeAccurate;
+	private boolean addAllowed;
+	private boolean addAllowedEvery;
+	private boolean deleteAllowed;
+	private boolean deleteAllowedEvery;
+	private boolean iteratorRemoveAllowed;
+	private boolean canBeEmpty;
+	private boolean findContractSafe;
+	private boolean handlesLiteralTyping;
+
+	public static RemoteCapabilities construct(Capabilities orig) {
+		if (orig instanceof RemoteCapabilities) {
+			return (RemoteCapabilities) orig;
+		}
+		RemoteCapabilities retval = new RemoteCapabilities();
+		retval.sizeAccurate = orig.sizeAccurate();
+		retval.addAllowed = orig.addAllowed();
+		retval.addAllowedEvery = orig.addAllowed(true);
+		retval.deleteAllowed = orig.deleteAllowed();
+		retval.deleteAllowedEvery = orig.deleteAllowed(true);
+		retval.iteratorRemoveAllowed = orig.iteratorRemoveAllowed();
+		retval.canBeEmpty = orig.canBeEmpty();
+		retval.findContractSafe = orig.findContractSafe();
+		retval.handlesLiteralTyping = orig.handlesLiteralTyping();
+		return retval;
+	}
+
+	@Override
+	public boolean sizeAccurate() {
+		return sizeAccurate;
+	}
+
+	@Override
+	public boolean addAllowed() {
+		return addAllowed;
+	}
+
+	@Override
+	public boolean addAllowed(boolean everyTriple) {
+		return everyTriple ? addAllowedEvery : addAllowed;
+	}
+
+	@Override
+	public boolean deleteAllowed() {
+		return deleteAllowed;
+	}
+
+	@Override
+	public boolean deleteAllowed(boolean everyTriple) {
+		return everyTriple ? deleteAllowedEvery : deleteAllowed;
+	}
+
+	@Override
+	public boolean iteratorRemoveAllowed() {
+		return iteratorRemoveAllowed;
+	}
+
+	@Override
+	public boolean canBeEmpty() {
+		return canBeEmpty;
+	}
+
+	@Override
+	public boolean findContractSafe() {
+		return findContractSafe;
+	}
+
+	@Override
+	public boolean handlesLiteralTyping() {
+		return handlesLiteralTyping;
+	}
+
+}

Propchange: jena/Experimental/jena-rmi/jena-rmi-shared/src/main/java/org/apache/jena/rmi/shared/remote/RemoteCapabilities.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain