Author: cziegeler
Date: Fri Apr 16 14:39:26 2010
New Revision: 934929

URL: http://svn.apache.org/viewvc?rev=934929&view=rev
Log:
SLING-1447 : support for resource paths containing workspace name - use single 
boolean config value

Modified:
    
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
    
sling/trunk/bundles/jcr/resource/src/main/resources/OSGI-INF/metatype/metatype.properties

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=934929&r1=934928&r2=934929&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
 Fri Apr 16 14:39:26 2010
@@ -19,7 +19,6 @@
 package org.apache.sling.jcr.resource.internal;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Dictionary;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -162,9 +161,11 @@ public class JcrResourceResolverFactoryI
     private static final String PROP_MAP_LOCATION = 
"resource.resolver.map.location";
 
     /**
-     * @scr.property cardinality="+"
+     * @scr.property valueRef="DEFAULT_MULTIWORKSPACE"
      */
-    private static final String PROP_LISTENER_WORKSPACES = 
"resource.resolver.listener.workspaces";
+    private static final String PROP_MULTIWORKSPACE = 
"resource.resolver.multiworkspace";
+
+    private static final boolean DEFAULT_MULTIWORKSPACE = false;
 
     /** default log */
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -383,13 +384,10 @@ public class JcrResourceResolverFactoryI
             // first - add a listener for the default workspace
             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));
-            if (Arrays.asList(listenerWorkspaces).contains(ALL_WORKSPACES)) {
-                listenerWorkspaces = getAllWorkspaces();
-            }
-
-            if (listenerWorkspaces != null) {
+            // check if multi workspace support is enabled
+            final boolean useMultiWorkspaces = 
OsgiUtil.toBoolean(properties.get(PROP_MULTIWORKSPACE), DEFAULT_MULTIWORKSPACE);
+            if (useMultiWorkspaces) {
+                final String[] listenerWorkspaces = getAllWorkspaces();
                 for (final String wspName : listenerWorkspaces) {
                     if 
(!wspName.equals(this.repository.getDefaultWorkspace())) {
                         this.resourceListeners.add(

Modified: 
sling/trunk/bundles/jcr/resource/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=934929&r1=934928&r2=934929&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/resource/src/main/resources/OSGI-INF/metatype/metatype.properties
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/resources/OSGI-INF/metatype/metatype.properties
 Fri Apr 16 14:39:26 2010
@@ -71,8 +71,7 @@ resource.resolver.manglenamespaces.descr
  path part of URI references with a scheme. The default value of this property 
\
  if no configuration is provided is "true".
 
-resource.resolver.listener.workspaces.name = Listener Workspaces
-resource.resolver.listener.workspaces.description = A list of workspaces \
- to which the JCR Resource Resolver should observe and fire OSGi events \
- upon workspace changes. The special value '*' results in observation 
happening \
- for all workspaces.
+resource.resolver.multiworkspace.name=Enable Multi Workspaces
+resource.resolver.multiworkspace.name=If this is enabled, multiple workspaces 
are supported \
+ This includes registering observation listeners for all workspaces and allows 
to \
+ resolve resources from other workspaces than the default one.


Reply via email to