Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteProperty.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteProperty.java (revision 280284)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteProperty.java (working copy)
@@ -46,6 +46,7 @@
* class provides two convenience methods to satisfy these requirements.
*
* @author Jukka Zitting
+ * @author Michael Singer
* @see javax.jcr.Property
* @see org.apache.jackrabbit.rmi.client.ClientProperty
* @see org.apache.jackrabbit.rmi.server.ServerProperty
@@ -56,11 +57,11 @@
* Remote version of the
* {@link javax.jcr.Property#getValue() Property.getValue()} method.
*
- * @return property value
+ * @return property RemoteValue
* @throws RepositoryException on repository errors
* @throws RemoteException on RMI errors
*/
- Value getValue() throws RepositoryException, RemoteException;
+ RemoteValue getValue() throws RepositoryException, RemoteException;
/**
* Remote version of the
@@ -66,11 +67,11 @@
* Remote version of the
* {@link javax.jcr.Property#getValues() Property.getValues()} method.
*
- * @return property values
+ * @return property RemoteValue[]
* @throws RepositoryException on repository errors
* @throws RemoteException on RMI errors
*/
- Value[] getValues() throws RepositoryException, RemoteException;
+ RemoteValue[] getValues() throws RepositoryException, RemoteException;
/**
* Remote version of the
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemotePropertyDefinition.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemotePropertyDefinition.java (revision 280284)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemotePropertyDefinition.java (working copy)
@@ -18,8 +18,6 @@
import java.rmi.RemoteException;
-import javax.jcr.Value;
-
/**
* Remote version of the JCR {@link javax.jcr.nodetype.PropertyDefinition PropertyDefinition}
* interface. Used by the
@@ -74,7 +72,7 @@
* @return default values
* @throws RemoteException on RMI errors
*/
- Value[] getDefaultValues() throws RemoteException;
+ RemoteValue[] getDefaultValues() throws RemoteException;
/**
* Remote version of the
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteRepository.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteRepository.java (revision 280284)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteRepository.java (working copy)
@@ -115,5 +115,8 @@
*/
RemoteSession login(Credentials credentials, String workspace)
throws RepositoryException, RemoteException;
+
+ RemoteSession login(String username, String password)
+ throws RepositoryException, RemoteException;
}
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteRow.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteRow.java (revision 280284)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/remote/RemoteRow.java (working copy)
@@ -20,7 +20,6 @@
import java.rmi.RemoteException;
import javax.jcr.RepositoryException;
-import javax.jcr.Value;
/**
* Remote version of the JCR {@link javax.jcr.query.Row Row} interface.
@@ -44,7 +43,7 @@
* @throws RepositoryException on repository errors
* @throws RemoteException on RMI errors
*/
- Value[] getValues() throws RepositoryException, RemoteException;
+ RemoteValue[] getValues() throws RepositoryException, RemoteException;
/**
* @see javax.jcr.query.Row#getValue(String)
@@ -54,6 +53,6 @@
* @throws RepositoryException on repository errors
* @throws RemoteException on RMI errors
*/
- Value getValue(String propertyName)
+ RemoteValue getValue(String propertyName)
throws RepositoryException, RemoteException;
}
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerLock.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerLock.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerLock.java (working copy)
@@ -17,10 +17,10 @@
package org.apache.jackrabbit.rmi.server;
import java.rmi.RemoteException;
-import java.rmi.server.UnicastRemoteObject;
import javax.jcr.RepositoryException;
import javax.jcr.lock.Lock;
+import javax.rmi.PortableRemoteObject;
import org.apache.jackrabbit.rmi.remote.RemoteLock;
@@ -31,10 +31,11 @@
* interface.
*
* @author Jukka Zitting
+ * @author Michael Singer
* @see javax.jcr.lock.Lock
* @see org.apache.jackrabbit.rmi.remote.RemoteLock
*/
-public class ServerLock extends UnicastRemoteObject implements RemoteLock {
+public class ServerLock extends PortableRemoteObject implements RemoteLock {
/** The adapted local lock. */
private Lock lock;
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerObject.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerObject.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerObject.java (working copy)
@@ -16,8 +16,8 @@
*/
package org.apache.jackrabbit.rmi.server;
+import java.rmi.Remote;
import java.rmi.RemoteException;
-import java.rmi.server.UnicastRemoteObject;
import javax.jcr.AccessDeniedException;
import javax.jcr.InvalidItemStateException;
@@ -41,10 +41,10 @@
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.nodetype.NodeDefinition;
import javax.jcr.nodetype.NodeType;
import javax.jcr.nodetype.NodeTypeIterator;
import javax.jcr.nodetype.PropertyDefinition;
-import javax.jcr.nodetype.NodeDefinition;
import javax.jcr.query.InvalidQueryException;
import javax.jcr.version.Version;
import javax.jcr.version.VersionException;
@@ -50,6 +50,7 @@
import javax.jcr.version.VersionException;
import javax.jcr.version.VersionHistory;
import javax.jcr.version.VersionIterator;
+import javax.rmi.PortableRemoteObject;
import org.apache.jackrabbit.rmi.remote.RemoteItem;
import org.apache.jackrabbit.rmi.remote.RemoteNode;
@@ -65,8 +66,9 @@
* to instantiate new server adapters.
*
* @author Jukka Zitting
+ * @author Michael Singer
*/
-public class ServerObject extends UnicastRemoteObject {
+public class ServerObject extends PortableRemoteObject implements Remote {
/** Factory for creating server adapters. */
private RemoteAdapterFactory factory;
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerProperty.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerProperty.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerProperty.java (working copy)
@@ -24,6 +24,7 @@
import org.apache.jackrabbit.rmi.remote.RemoteProperty;
import org.apache.jackrabbit.rmi.remote.RemotePropertyDefinition;
+import org.apache.jackrabbit.rmi.remote.RemoteValue;
import org.apache.jackrabbit.rmi.value.SerialValueFactory;
/**
@@ -34,6 +35,7 @@
* interface.
*
* @author Jukka Zitting
+ * @author Michael Singer
* @see javax.jcr.Property
* @see org.apache.jackrabbit.rmi.remote.RemoteProperty
*/
@@ -56,7 +58,7 @@
}
/** {@inheritDoc} */
- public Value getValue() throws RepositoryException, RemoteException {
+ public RemoteValue getValue() throws RepositoryException, RemoteException {
try {
return SerialValueFactory.makeSerialValue(property.getValue());
} catch (RepositoryException ex) {
@@ -65,7 +67,7 @@
}
/** {@inheritDoc} */
- public Value[] getValues() throws RepositoryException, RemoteException {
+ public RemoteValue[] getValues() throws RepositoryException, RemoteException {
try {
return SerialValueFactory.makeSerialValueArray(property.getValues());
} catch (RepositoryException ex) {
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerPropertyDefinition.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerPropertyDefinition.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerPropertyDefinition.java (working copy)
@@ -18,10 +18,10 @@
import java.rmi.RemoteException;
-import javax.jcr.Value;
import javax.jcr.nodetype.PropertyDefinition;
import org.apache.jackrabbit.rmi.remote.RemotePropertyDefinition;
+import org.apache.jackrabbit.rmi.remote.RemoteValue;
import org.apache.jackrabbit.rmi.value.SerialValueFactory;
/**
@@ -33,6 +33,7 @@
* interface.
*
* @author Jukka Zitting
+ * @author Michael Singer
* @see javax.jcr.nodetype.PropertyDefinition
* @see org.apache.jackrabbit.rmi.remote.RemotePropertyDefinition
*/
@@ -66,7 +67,7 @@
}
/** {@inheritDoc} */
- public Value[] getDefaultValues() throws RemoteException {
+ public RemoteValue[] getDefaultValues() throws RemoteException {
return SerialValueFactory.makeSerialValueArray(def.getDefaultValues());
}
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerRepository.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerRepository.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerRepository.java (working copy)
@@ -22,6 +22,7 @@
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
import org.apache.jackrabbit.rmi.remote.RemoteRepository;
import org.apache.jackrabbit.rmi.remote.RemoteSession;
@@ -34,6 +35,7 @@
* interface.
*
* @author Jukka Zitting
+ * @author Michael Singer
* @see javax.jcr.Repository
* @see org.apache.jackrabbit.rmi.remote.RemoteRepository
*/
@@ -109,4 +111,18 @@
}
}
+ /**
+ * convenience method to enable simple login from .NET without
+ * Credentials implementation on the .NET side
+ */
+ public RemoteSession login(String username, String password) throws RepositoryException, RemoteException {
+ SimpleCredentials creds = new SimpleCredentials(username, password.toCharArray());
+ try{
+ Session session = repository.login(creds);
+ return getFactory().getRemoteSession(session);
+ } catch (RepositoryException ex) {
+ throw getRepositoryException(ex);
+ }
+ }
+
}
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerRow.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerRow.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerRow.java (working copy)
@@ -19,10 +19,10 @@
import java.rmi.RemoteException;
import javax.jcr.RepositoryException;
-import javax.jcr.Value;
import javax.jcr.query.Row;
import org.apache.jackrabbit.rmi.remote.RemoteRow;
+import org.apache.jackrabbit.rmi.remote.RemoteValue;
import org.apache.jackrabbit.rmi.value.SerialValueFactory;
/**
@@ -32,6 +32,7 @@
* interface.
*
* @author Philipp Koch
+ * @author Michael Singer
* @see javax.jcr.query.Row
* @see org.apache.jackrabbit.rmi.remote.RemoteRow
*/
@@ -54,12 +55,12 @@
}
/** {@inheritDoc} */
- public Value[] getValues() throws RepositoryException, RemoteException {
- return row.getValues();
+ public RemoteValue[] getValues() throws RepositoryException, RemoteException {
+ return SerialValueFactory.makeSerialValueArray(row.getValues());
}
/** {@inheritDoc} */
- public Value getValue(String propertyName)
+ public RemoteValue getValue(String propertyName)
throws RepositoryException, RemoteException {
return SerialValueFactory.makeSerialValue(row.getValue(propertyName));
}
Index: C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/value/SerialValueFactory.java
===================================================================
--- C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/value/SerialValueFactory.java (revision 278927)
+++ C:/_DATA/workspace.java/jackrabbit/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/value/SerialValueFactory.java (working copy)
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.rmi.value;
import java.io.InputStream;
+import java.rmi.RemoteException;
import java.util.Calendar;
import javax.jcr.Node;
@@ -26,6 +27,9 @@
import javax.jcr.ValueFactory;
import javax.jcr.ValueFormatException;
+import org.apache.jackrabbit.rmi.remote.RemoteValue;
+import org.apache.jackrabbit.rmi.server.ServerValue;
+
/**
* The SerialValueFactory class is used in the RMI infrastructure
* to create serializable Value instances on the client side.
@@ -42,6 +46,7 @@
* @version $Revision$, $Date$
* @author Jukka Zitting
* @author Felix Meschberger
+ * @author Michael Singer
* @since 0.16.4.1
*/
public class SerialValueFactory implements ValueFactory {
@@ -72,9 +77,9 @@
* @param values the values to be decorated
* @return array of decorated values
*/
- public static Value[] makeSerialValueArray(Value[] values) {
+ public static RemoteValue[] makeSerialValueArray(Value[] values) throws RemoteException {
if (values != null) {
- Value[] serials = new Value[values.length];
+ RemoteValue[] serials = new RemoteValue[values.length];
for (int i = 0; i < values.length; i++) {
serials[i] = makeSerialValue(values[i]);
}
@@ -80,7 +85,7 @@
}
return serials;
} else {
- return new Value[0];
+ return new RemoteValue[0];
}
}
@@ -91,15 +96,15 @@
* @param value the value to be decorated
* @return the decorated value
*/
- public static Value makeSerialValue(Value value) {
+ public static RemoteValue makeSerialValue(Value value) throws RemoteException {
// if the value is already serializable, just return it
// - or should we test for SerialValue ??
if (value instanceof SerialValue) {
- return value;
+ return new ServerValue(value);
}
// convert to a general vaule
- return new SerialValue(new StatefulValueAdapter(value));
+ return new ServerValue(new SerialValue(new StatefulValueAdapter(value)));
}
/**