Author: cziegeler
Date: Wed Apr 14 18:19:49 2010
New Revision: 934090

URL: http://svn.apache.org/viewvc?rev=934090&view=rev
Log:
SLING-1447 : support for resource paths containing workspace name - fix minor 
bug in set creation for listeners and remove obsolete repository parameter.

Modified:
    
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
    
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java

Modified: 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java?rev=934090&r1=934089&r2=934090&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
 Wed Apr 14 18:19:49 2010
@@ -38,7 +38,6 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.jcr.resource.JcrResourceConstants;
 import org.osgi.service.event.EventAdmin;
 import org.osgi.util.tracker.ServiceTracker;
@@ -75,7 +74,6 @@ public class JcrResourceListener impleme
 
     /**
      * Constructor.
-     * @param repository The repository to observe.
      * @param workspaceName The workspace name to observe
      * @param factory    The resource resolver factory.
      * @param startPath  The observation root path
@@ -83,16 +81,17 @@ public class JcrResourceListener impleme
      * @param eventAdminTracker The service tracker for the event admin.
      * @throws RepositoryException
      */
-    public JcrResourceListener(final SlingRepository repository,
-                               final String workspaceName,
+    public JcrResourceListener(final String workspaceName,
                                final ResourceResolverFactory factory,
                                final String startPath,
                                final String mountPrefix,
                                final ServiceTracker eventAdminTracker)
     throws LoginException, RepositoryException {
         this.workspaceName = workspaceName;
-        Map<String,Object> authInfo = new HashMap<String,Object>();
-        authInfo.put(JcrResourceConstants.AUTH_INFO_WORKSPACE, workspaceName);
+        final Map<String,Object> authInfo = new HashMap<String,Object>();
+        if ( workspaceName != null ) {
+            authInfo.put(JcrResourceConstants.AUTH_INFO_WORKSPACE, 
workspaceName);
+        }
         this.resolver = factory.getAdministrativeResourceResolver(authInfo);
         this.session = resolver.adaptTo(Session.class);
         this.startPath = startPath;
@@ -174,12 +173,11 @@ public class JcrResourceListener impleme
         }
     }
 
-    private String createWorkspacePath(String path) {
+    private String createWorkspacePath(final String path) {
         if (workspaceName == null) {
             return path;
-        } else {
-            return workspaceName+":"+path;
         }
+        return workspaceName + ":" + path;
     }
 
     private void sendEvents(final Set<String> paths, final String topic, final 
EventAdmin localEA) {

Modified: 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java?rev=934090&r1=934089&r2=934090&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
 Wed Apr 14 18:19:49 2010
@@ -381,7 +381,7 @@ public class JcrResourceResolverFactoryI
             this.resourceListeners = new HashSet<JcrResourceListener>();
 
             // first - add a listener for the default workspace
-            this.resourceListeners.add(new 
JcrResourceListener(this.repository, null, this, "/", "/", 
this.eventAdminTracker));
+            this.resourceListeners.add(new JcrResourceListener(null, this, 
"/", "/", this.eventAdminTracker));
 
             // then, iterate through any workspaces which are configured
             String[] listenerWorkspaces = 
OsgiUtil.toStringArray(properties.get(PROP_LISTENER_WORKSPACES));
@@ -390,11 +390,10 @@ public class JcrResourceResolverFactoryI
             }
 
             if (listenerWorkspaces != null) {
-                this.resourceListeners = new 
HashSet<JcrResourceListener>(listenerWorkspaces.length);
-                for (String wspName : listenerWorkspaces) {
+                for (final String wspName : listenerWorkspaces) {
                     if 
(!wspName.equals(this.repository.getDefaultWorkspace())) {
                         this.resourceListeners.add(
-                            new JcrResourceListener(this.repository, wspName, 
this, "/", "/", this.eventAdminTracker));
+                            new JcrResourceListener(wspName, this, "/", "/", 
this.eventAdminTracker));
                     }
                 }
             }


Reply via email to