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/09/08 11:56:05 UTC

svn commit: r994954 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: ./ security/user/ session/

Author: jukka
Date: Wed Sep  8 09:56:05 2010
New Revision: 994954

URL: http://svn.apache.org/viewvc?rev=994954&view=rev
Log:
JCR-2741: Improved logging for session operations

Add a marker interface for write operations

Added:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionWriteOperation.java   (with props)
Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserImporter.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/AddNodeOperation.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionSaveOperation.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java Wed Sep  8 09:56:05 2010
@@ -38,7 +38,7 @@ import org.apache.jackrabbit.core.nodety
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.core.security.authorization.Permission;
 import org.apache.jackrabbit.core.session.SessionContext;
-import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.commons.nodetype.NodeDefinitionImpl;
@@ -47,7 +47,7 @@ import org.apache.jackrabbit.spi.commons
 /**
  * Session operation for adding a mixin type to a node.
  */
-class AddMixinOperation implements SessionOperation<Object> {
+class AddMixinOperation implements SessionWriteOperation<Object> {
 
     private final NodeImpl node;
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java Wed Sep  8 09:56:05 2010
@@ -27,14 +27,14 @@ import javax.jcr.RepositoryException;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.security.authorization.Permission;
 import org.apache.jackrabbit.core.session.SessionContext;
-import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.spi.Path;
 
 /**
  * Session operation for removing a given item, optionally with constraint
  * checks enabled.
  */
-class ItemRemoveOperation implements SessionOperation<Object> {
+class ItemRemoveOperation implements SessionWriteOperation<Object> {
 
     /**
      * The item to be removed.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java Wed Sep  8 09:56:05 2010
@@ -49,7 +49,7 @@ import org.apache.jackrabbit.core.nodety
 import org.apache.jackrabbit.core.security.AccessManager;
 import org.apache.jackrabbit.core.security.authorization.Permission;
 import org.apache.jackrabbit.core.session.SessionContext;
-import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.state.ItemState;
 import org.apache.jackrabbit.core.state.ItemStateException;
@@ -66,13 +66,13 @@ import org.apache.jackrabbit.spi.QItemDe
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
 import org.apache.jackrabbit.util.Text;
-import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The session operation triggered by {@link Item#save()}.
  */
-class ItemSaveOperation implements SessionOperation<Object> {
+class ItemSaveOperation implements SessionWriteOperation<Object> {
 
     /**
      * Logger instance.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java Wed Sep  8 09:56:05 2010
@@ -16,6 +16,13 @@
  */
 package org.apache.jackrabbit.core;
 
+import static javax.jcr.PropertyType.STRING;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.JCR_CURRENT_LIFECYCLE_STATE;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.JCR_ISCHECKEDOUT;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.JCR_LIFECYCLE_POLICY;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.MIX_LIFECYCLE;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.MIX_REFERENCEABLE;
+
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -82,6 +89,7 @@ import org.apache.jackrabbit.core.securi
 import org.apache.jackrabbit.core.session.AddNodeOperation;
 import org.apache.jackrabbit.core.session.SessionContext;
 import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.state.ItemState;
 import org.apache.jackrabbit.core.state.ItemStateException;
@@ -97,9 +105,6 @@ import org.apache.jackrabbit.spi.QProper
 import org.apache.jackrabbit.spi.commons.conversion.MalformedPathException;
 import org.apache.jackrabbit.spi.commons.conversion.NameException;
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
-
-import static javax.jcr.PropertyType.STRING;
-import static org.apache.jackrabbit.spi.commons.name.NameConstants.*;
 import org.apache.jackrabbit.spi.commons.name.PathBuilder;
 import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
 import org.apache.jackrabbit.spi.commons.nodetype.NodeDefinitionImpl;
@@ -1913,7 +1918,7 @@ public class NodeImpl extends ItemImpl i
      * definition and the implementation tries to convert the passed value to
      * that type. If that fails, then a {@link ValueFormatException} is thrown.
      */
-    private class SetPropertyOperation implements SessionOperation<PropertyImpl> {
+    private class SetPropertyOperation implements SessionWriteOperation<PropertyImpl> {
 
         private final Name name;
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java Wed Sep  8 09:56:05 2010
@@ -45,7 +45,7 @@ import org.apache.jackrabbit.core.nodety
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.core.security.authorization.Permission;
 import org.apache.jackrabbit.core.session.SessionContext;
-import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.core.state.NodeState;
@@ -60,7 +60,7 @@ import org.apache.jackrabbit.value.Value
 /**
  * Session operation for removing a mixin type from a node.
  */
-class RemoveMixinOperation implements SessionOperation<Object> {
+class RemoveMixinOperation implements SessionWriteOperation<Object> {
 
     private final NodeImpl node;
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java Wed Sep  8 09:56:05 2010
@@ -28,7 +28,7 @@ import org.apache.jackrabbit.core.nodety
 import org.apache.jackrabbit.core.security.AccessManager;
 import org.apache.jackrabbit.core.security.authorization.Permission;
 import org.apache.jackrabbit.core.session.SessionContext;
-import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.commons.conversion.NameException;
@@ -36,7 +36,7 @@ import org.apache.jackrabbit.spi.commons
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class SessionMoveOperation implements SessionOperation<Object> {
+public class SessionMoveOperation implements SessionWriteOperation<Object> {
 
     private final Logger log =
         LoggerFactory.getLogger(SessionMoveOperation.class);

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java Wed Sep  8 09:56:05 2010
@@ -44,17 +44,18 @@ import org.apache.jackrabbit.core.id.Nod
 import org.apache.jackrabbit.core.security.authorization.Permission;
 import org.apache.jackrabbit.core.session.SessionContext;
 import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.UpdatableItemStateManager;
 import org.apache.jackrabbit.core.version.InternalActivity;
+import org.apache.jackrabbit.core.version.InternalBaseline;
 import org.apache.jackrabbit.core.version.InternalVersion;
 import org.apache.jackrabbit.core.version.InternalVersionHistory;
 import org.apache.jackrabbit.core.version.NodeStateEx;
 import org.apache.jackrabbit.core.version.VersionImpl;
 import org.apache.jackrabbit.core.version.VersionManagerImplConfig;
 import org.apache.jackrabbit.core.version.VersionSet;
-import org.apache.jackrabbit.core.version.InternalBaseline;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
@@ -110,7 +111,7 @@ public class VersionManagerImpl extends 
      */
     public Version checkin(final String absPath, final Calendar created)
             throws RepositoryException {
-        return perform(new SessionOperation<Version> () {
+        return perform(new SessionWriteOperation<Version> () {
             public Version perform(SessionContext context)
                     throws RepositoryException {
                 NodeStateEx state = getNodeState(
@@ -127,7 +128,7 @@ public class VersionManagerImpl extends 
      * {@inheritDoc}
      */
     public void checkout(final String absPath) throws RepositoryException {
-        perform(new SessionOperation<NodeId> () {
+        perform(new SessionWriteOperation<NodeId> () {
             public NodeId perform(SessionContext context)
                     throws RepositoryException {
                 NodeStateEx state = getNodeState(
@@ -143,7 +144,7 @@ public class VersionManagerImpl extends 
      * {@inheritDoc}
      */
     public Version checkpoint(final String absPath) throws RepositoryException {
-        return perform(new SessionOperation<Version> () {
+        return perform(new SessionWriteOperation<Version> () {
             public Version perform(SessionContext context)
                     throws RepositoryException {
                 NodeStateEx state = getNodeState(
@@ -202,7 +203,7 @@ public class VersionManagerImpl extends 
      */
     public void restore(final Version[] versions, final boolean removeExisting)
             throws RepositoryException {
-        perform(new SessionOperation<Object> () {
+        perform(new SessionWriteOperation<Object> () {
             public Object perform(SessionContext context)
                     throws RepositoryException {
                 // check for pending changes
@@ -248,7 +249,7 @@ public class VersionManagerImpl extends 
     public void restore(
             final String absPath, final String versionName,
             final boolean removeExisting) throws RepositoryException {
-        perform(new SessionOperation<Object> () {
+        perform(new SessionWriteOperation<Object> () {
             public Object perform(SessionContext context)
                     throws RepositoryException {
                 NodeStateEx state = getNodeState(
@@ -267,7 +268,7 @@ public class VersionManagerImpl extends 
     public void restore(
             final String absPath, final Version version, final boolean removeExisting)
             throws RepositoryException {
-        perform(new SessionOperation<Object> () {
+        perform(new SessionWriteOperation<Object> () {
             public Object perform(SessionContext context)
                     throws RepositoryException {
                 // first check if node exists
@@ -327,7 +328,7 @@ public class VersionManagerImpl extends 
     public void restoreByLabel(
             final String absPath, final String versionLabel,
             final boolean removeExisting) throws RepositoryException {
-        perform(new SessionOperation<Object> () {
+        perform(new SessionWriteOperation<Object> () {
             public Object perform(SessionContext context)
                     throws RepositoryException {
                 NodeStateEx state = getNodeState(
@@ -371,7 +372,7 @@ public class VersionManagerImpl extends 
             final String absPath, final String srcWorkspaceName,
             final boolean bestEffort, final boolean isShallow)
             throws RepositoryException {
-        return perform(new SessionOperation<NodeIterator> () {
+        return perform(new SessionWriteOperation<NodeIterator> () {
             public NodeIterator perform(SessionContext context)
                     throws RepositoryException {
                 NodeStateEx state = getNodeState(

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java Wed Sep  8 09:56:05 2010
@@ -16,6 +16,28 @@
  */
 package org.apache.jackrabbit.core.security.user;
 
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+import javax.jcr.ItemNotFoundException;
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.UserManager;
@@ -29,33 +51,12 @@ import org.apache.jackrabbit.core.NodeIm
 import org.apache.jackrabbit.core.PropertyImpl;
 import org.apache.jackrabbit.core.session.SessionContext;
 import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.spi.commons.iterator.Iterators;
 import org.apache.jackrabbit.util.Text;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jcr.ItemNotFoundException;
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.Value;
-
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
 /**
  * GroupImpl...
  */
@@ -424,7 +425,7 @@ class GroupImpl extends AuthorizableImpl
         }
 
         public boolean addMember(final AuthorizableImpl authorizable) throws RepositoryException {
-            return userManager.performProtectedOperation(getSession(), new SessionOperation<Boolean>() {
+            return userManager.performProtectedOperation(getSession(), new SessionWriteOperation<Boolean>() {
                 public Boolean perform(SessionContext context) throws RepositoryException {
                     NodeImpl nMembers = (node.hasNode(N_MEMBERS)
                             ? node.getNode(N_MEMBERS)
@@ -465,7 +466,7 @@ class GroupImpl extends AuthorizableImpl
                 return false;
             }
 
-            return userManager.performProtectedOperation(getSession(), new SessionOperation<Boolean>() {
+            return userManager.performProtectedOperation(getSession(), new SessionWriteOperation<Boolean>() {
                 public Boolean perform(SessionContext context) throws RepositoryException {
                     NodeImpl nMembers = node.getNode(N_MEMBERS);
                     try {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserImporter.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserImporter.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserImporter.java Wed Sep  8 09:56:05 2010
@@ -16,6 +16,21 @@
  */
 package org.apache.jackrabbit.core.security.user;
 
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.ImportUUIDBehavior;
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+import javax.jcr.nodetype.ConstraintViolationException;
+
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -30,7 +45,7 @@ import org.apache.jackrabbit.core.id.Nod
 import org.apache.jackrabbit.core.security.principal.PrincipalImpl;
 import org.apache.jackrabbit.core.security.user.UserImporter.ImportBehavior;
 import org.apache.jackrabbit.core.session.SessionContext;
-import org.apache.jackrabbit.core.session.SessionOperation;
+import org.apache.jackrabbit.core.session.SessionWriteOperation;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.util.ReferenceChangeTracker;
 import org.apache.jackrabbit.core.xml.NodeInfo;
@@ -43,21 +58,6 @@ import org.apache.jackrabbit.spi.commons
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jcr.ImportUUIDBehavior;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.Value;
-import javax.jcr.nodetype.ConstraintViolationException;
-
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
 /**
  * <code>UserImporter</code> implements a
  * <code>DefaultProtectedPropertyImporter</code> that is able to deal with
@@ -396,7 +396,7 @@ public class UserImporter implements Pro
                         final NodeImpl groupNode = ((AuthorizableImpl) gr).getNode();
 
                         if (userManager.getGroupMembershipSplitSize() > 0) {
-                            userManager.performProtectedOperation((SessionImpl) session, new SessionOperation<Object>() {
+                            userManager.performProtectedOperation((SessionImpl) session, new SessionWriteOperation<Object>() {
                                 public Boolean perform(SessionContext context) throws RepositoryException {
                                     NodeImpl nMembers = (groupNode.hasNode(UserConstants.N_MEMBERS)
                                             ? groupNode.getNode(UserConstants.N_MEMBERS)

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/AddNodeOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/AddNodeOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/AddNodeOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/AddNodeOperation.java Wed Sep  8 09:56:05 2010
@@ -34,7 +34,7 @@ import org.apache.jackrabbit.spi.commons
 /**
  * Session operation for adding a new node.
  */
-public class AddNodeOperation implements SessionOperation<Node> {
+public class AddNodeOperation implements SessionWriteOperation<Node> {
 
     private final NodeImpl node;
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionSaveOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionSaveOperation.java?rev=994954&r1=994953&r2=994954&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionSaveOperation.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionSaveOperation.java Wed Sep  8 09:56:05 2010
@@ -24,7 +24,7 @@ import org.apache.jackrabbit.core.id.Nod
 /**
  * Operation to persist transient changes in a session.
  */
-public class SessionSaveOperation implements SessionOperation<Object> {
+public class SessionSaveOperation implements SessionWriteOperation<Object> {
 
     /**
      * Persists transient changes by delegating to the save() method of the

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionWriteOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionWriteOperation.java?rev=994954&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionWriteOperation.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionWriteOperation.java Wed Sep  8 09:56:05 2010
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.session;
+
+/**
+ * Marker interface that marks a {@link SessionOperation} that modifies
+ * the state of the session or the repository.
+ */
+public interface SessionWriteOperation<T> extends SessionOperation<T> {
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionWriteOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native