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.