You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/01/19 10:53:26 UTC

svn commit: r900712 - /jackrabbit/commons/jcr-rmi/trunk/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java

Author: jukka
Date: Tue Jan 19 09:53:26 2010
New Revision: 900712

URL: http://svn.apache.org/viewvc?rev=900712&view=rev
Log:
JSR-283: Implement RepositoryFactory

Add support for URLs pointing directly to the serialized RMI stub.

Modified:
    jackrabbit/commons/jcr-rmi/trunk/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java

Modified: jackrabbit/commons/jcr-rmi/trunk/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java?rev=900712&r1=900711&r2=900712&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java Tue Jan 19 09:53:26 2010
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.rmi.repository;
 
+import java.io.InputStream;
+import java.io.ObjectInputStream;
 import java.net.URI;
 import java.rmi.Naming;
 import java.util.Hashtable;
@@ -55,7 +57,18 @@
                         return null;
                     }
                 } else {
-                    return null;
+                    InputStream stream = uri.toURL().openStream();
+                    try {
+                        Object remote =
+                            new ObjectInputStream(stream).readObject();
+                        if (remote instanceof RemoteRepository) {
+                            return getRepository((RemoteRepository) remote);
+                        } else {
+                            return null;
+                        }
+                    } finally {
+                        stream.close();
+                    }
                 }
             } catch (Exception e) {
                 return null;