You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2016/12/19 15:15:58 UTC

svn commit: r1775119 - in /sling/trunk/bundles/jcr/resource/src: main/java/org/apache/sling/jcr/resource/internal/ test/java/org/apache/sling/jcr/resource/internal/

Author: cziegeler
Date: Mon Dec 19 15:15:58 2016
New Revision: 1775119

URL: http://svn.apache.org/viewvc?rev=1775119&view=rev
Log:
SLING-6403 : Remove getAdministrativeResourceResolver() and loginAdministrative() usage from jcr.resource

Modified:
    sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java
    sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrSystemUserValidator.java
    sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerTest.java

Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java?rev=1775119&r1=1775118&r2=1775119&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java Mon Dec 19 15:15:58 2016
@@ -64,7 +64,7 @@ public class JcrListenerBaseConfig imple
         this.pathMapper = pathMapper;
         this.reporter = reporter;
         // The session should have read access on the whole repository
-        this.session = repository.loginAdministrative(repository.getDefaultWorkspace());
+        this.session = repository.loginService("observation", repository.getDefaultWorkspace());
     }
 
     /**

Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrSystemUserValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrSystemUserValidator.java?rev=1775119&r1=1775118&r2=1775119&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrSystemUserValidator.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrSystemUserValidator.java Mon Dec 19 15:15:58 2016
@@ -114,7 +114,10 @@ public class JcrSystemUserValidator impl
                      * method, this bundle could be configured with an appropriate
                      * user for service authentication and do:
                      *     tmpSession = repository.loginService(null, workspace);
-                     * For now, we keep loginAdministrative
+                     * For now, we keep loginAdministrative as switching to a service user
+                     * will result in a endless recursion (this method checks if
+                     * a service user is allowed, so using a service user here
+                     * calls this method again...and again...and again)
                      */
                     administrativeSession = repository.loginAdministrative(null);
                     if (administrativeSession instanceof JackrabbitSession) {

Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerTest.java?rev=1775119&r1=1775118&r2=1775119&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerTest.java Mon Dec 19 15:15:58 2016
@@ -29,14 +29,19 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.NoSuchWorkspaceException;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.Value;
 
 import org.apache.sling.api.resource.observation.ResourceChange;
 import org.apache.sling.api.resource.observation.ResourceChange.ChangeType;
 import org.apache.sling.api.resource.path.PathSet;
 import org.apache.sling.commons.testing.jcr.RepositoryUtil;
+import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.spi.resource.provider.ObservationReporter;
 import org.apache.sling.spi.resource.provider.ObserverConfiguration;
 import org.junit.After;
@@ -68,9 +73,78 @@ public class JcrResourceListenerTest {
         RepositoryUtil.startRepository();
         this.adminSession = RepositoryUtil.getRepository().loginAdministrative(null);
         RepositoryUtil.registerSlingNodeTypes(adminSession);
+        final SlingRepository repo = RepositoryUtil.getRepository();
         this.config = new JcrListenerBaseConfig(getObservationReporter(),
                 new PathMapperImpl(),
-                RepositoryUtil.getRepository());
+                new SlingRepository() {
+
+                    @Override
+                    public Session login(Credentials credentials, String workspaceName)
+                            throws LoginException, NoSuchWorkspaceException, RepositoryException {
+                        return repo.login(credentials, workspaceName);
+                    }
+
+                    @Override
+                    public Session login(String workspaceName) throws LoginException, NoSuchWorkspaceException, RepositoryException {
+                        return repo.login(workspaceName);
+                    }
+
+                    @Override
+                    public Session login(Credentials credentials) throws LoginException, RepositoryException {
+                        return repo.login(credentials);
+                    }
+
+                    @Override
+                    public Session login() throws LoginException, RepositoryException {
+                        return repo.login();
+                    }
+
+                    @Override
+                    public boolean isStandardDescriptor(String key) {
+                        return repo.isStandardDescriptor(key);
+                    }
+
+                    @Override
+                    public boolean isSingleValueDescriptor(String key) {
+                        return repo.isSingleValueDescriptor(key);
+                    }
+
+                    @Override
+                    public Value[] getDescriptorValues(String key) {
+                        return repo.getDescriptorValues(key);
+                    }
+
+                    @Override
+                    public Value getDescriptorValue(String key) {
+                        return repo.getDescriptorValue(key);
+                    }
+
+                    @Override
+                    public String[] getDescriptorKeys() {
+                        return repo.getDescriptorKeys();
+                    }
+
+                    @Override
+                    public String getDescriptor(String key) {
+                        return repo.getDescriptor(key);
+                    }
+
+                    @Override
+                    public Session loginService(String subServiceName, String workspace) throws LoginException, RepositoryException {
+                        return repo.loginAdministrative(workspace);
+                    }
+
+                    @Override
+                    public Session loginAdministrative(String workspace) throws LoginException, RepositoryException {
+                        return repo.loginAdministrative(workspace);
+                    }
+
+                    @Override
+                    public String getDefaultWorkspace() {
+                        // TODO Auto-generated method stub
+                        return repo.getDefaultWorkspace();
+                    }
+                });
         this.listener = new JcrResourceListener(this.config,
                 getObservationReporter().getObserverConfigurations().get(0));
     }