You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by vr...@apache.org on 2012/02/06 08:56:58 UTC
svn commit: r1240908 - in /sling/whiteboard/resourceresolverfactory:
jcr-resource/
jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/
jcr-resource/src/test/java/org/apache/sling/jcr/resource/internal/
resourceresolverfactory/ resourcere...
Author: vramdal
Date: Mon Feb 6 07:56:57 2012
New Revision: 1240908
URL: http://svn.apache.org/viewvc?rev=1240908&view=rev
Log: (empty)
Added:
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/pom.xml
- copied, changed from r1240159, sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/jcr/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/jcr/resource/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/jcr/resource/internal/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/jcr/resource/internal/helper/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/
- copied from r1240159, sling/whiteboard/resourceresolverfactory/jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/resourceresolverfactory/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/resourceresolverfactory/StarResource.java
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/test/
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/test/java/
Removed:
sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java
Modified:
sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml
sling/whiteboard/resourceresolverfactory/jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
sling/whiteboard/resourceresolverfactory/jcr-resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
Modified: sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml
URL: http://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml?rev=1240908&r1=1240907&r2=1240908&view=diff
==============================================================================
--- sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml (original)
+++ sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml Mon Feb 6 07:56:57 2012
@@ -23,7 +23,7 @@
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
<version>12</version>
- <relativePath>../../../parent/pom.xml</relativePath>
+ <!--<relativePath>../../../parent/pom.xml</relativePath>-->
</parent>
<artifactId>org.apache.sling.jcr.resource</artifactId>
@@ -37,13 +37,13 @@
<scm>
<connection>
- scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource
+ scm:svn:http://svn.apache.org/repos/asf/sling/whiteboard/resourceresolverfactory/jcr-resource
</connection>
<developerConnection>
- scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource
+ scm:svn:https://svn.apache.org/repos/asf/sling/whiteboard/resourceresolverfactory/jcr-resource
</developerConnection>
<url>
- http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource
+ http://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/jcr-resource
</url>
</scm>
@@ -121,6 +121,11 @@
</build>
<dependencies>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.resourceresolverfactory</artifactId>
+ <version>2.0.11-WHITEBOARD</version>
+ </dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-api</artifactId>
Modified: sling/whiteboard/resourceresolverfactory/jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java?rev=1240908&r1=1240907&r2=1240908&view=diff
==============================================================================
--- sling/whiteboard/resourceresolverfactory/jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java (original)
+++ sling/whiteboard/resourceresolverfactory/jcr-resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java Mon Feb 6 07:56:57 2012
@@ -65,7 +65,7 @@ import org.apache.sling.jcr.resource.int
import org.apache.sling.jcr.resource.internal.helper.URIException;
import org.apache.sling.jcr.resource.internal.helper.jcr.JcrNodeResourceIterator;
import org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderEntry;
-import org.apache.sling.jcr.resource.internal.helper.starresource.StarResource;
+import org.apache.sling.resourceresolverfactory.StarResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: sling/whiteboard/resourceresolverfactory/jcr-resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/jcr-resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java?rev=1240908&r1=1240907&r2=1240908&view=diff
==============================================================================
--- sling/whiteboard/resourceresolverfactory/jcr-resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java (original)
+++ sling/whiteboard/resourceresolverfactory/jcr-resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java Mon Feb 6 07:56:57 2012
@@ -60,7 +60,6 @@ import org.apache.sling.jcr.resource.Jcr
import org.apache.sling.jcr.resource.internal.helper.MapEntries;
import org.apache.sling.jcr.resource.internal.helper.Mapping;
import org.apache.sling.jcr.resource.internal.helper.RedirectResource;
-import org.apache.sling.jcr.resource.internal.helper.starresource.StarResource;
import org.osgi.framework.BundleContext;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
Copied: sling/whiteboard/resourceresolverfactory/resourceresolverfactory/pom.xml (from r1240159, sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml)
URL: http://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/resourceresolverfactory/pom.xml?p2=sling/whiteboard/resourceresolverfactory/resourceresolverfactory/pom.xml&p1=sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml&r1=1240159&r2=1240908&rev=1240908&view=diff
==============================================================================
--- sling/whiteboard/resourceresolverfactory/jcr-resource/pom.xml (original)
+++ sling/whiteboard/resourceresolverfactory/resourceresolverfactory/pom.xml Mon Feb 6 07:56:57 2012
@@ -23,32 +23,32 @@
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
<version>12</version>
- <relativePath>../../../parent/pom.xml</relativePath>
+ <!--<relativePath>../../../parent/pom.xml</relativePath>-->
</parent>
- <artifactId>org.apache.sling.jcr.resource</artifactId>
- <version>2.0.11-SNAPSHOT</version>
+ <artifactId>org.apache.sling.resourceresolverfactory</artifactId>
+ <version>2.0.11-WHITEBOARD</version>
<packaging>bundle</packaging>
- <name>Apache Sling JCR Resource Resolver</name>
+ <name>Apache Sling Resource Resolver Factory</name>
<description>
- This bundle provides the JCR based ResourceResolver.
+ This bundle provides the ResourceResolverFactory.
</description>
<scm>
<connection>
- scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource
+ scm:svn:http://svn.apache.org/repos/asf/sling/whiteboard/resourceresolverfactory/resourceresolverfactory
</connection>
<developerConnection>
- scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource
+ scm:svn:https://svn.apache.org/repos/asf/sling/whiteboard/resourceresolverfactory/resourceresolverfactory
</developerConnection>
<url>
- http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource
+ https://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/resourceresolverfactory
</url>
</scm>
<properties>
- <site.jira.version.id>12314286</site.jira.version.id>
+ <!--<site.jira.version.id>12314286</site.jira.version.id>-->
<site.javadoc.exclude>**.internal.**</site.javadoc.exclude>
</properties>
@@ -90,29 +90,20 @@
org.apache.jackrabbit.api.observation
</DynamicImport-Package>
<Export-Package>
- org.apache.sling.jcr.resource;version=2.1
+ org.apache.sling.resourceresolverfactory;version=1.0
</Export-Package>
<Private-Package>
- org.apache.sling.jcr.resource.internal.*
+ org.apache.sling.jcr.resource.resourceresolverfactory.internal.*
</Private-Package>
<!-- Include URL support from Jackrabbit -->
<Embed-Dependency>
- jackrabbit-classloader;inline="org/apache/jackrabbit/net/**|org/apache/jackrabbit/classloader/Util.*",
- jackrabbit-jcr-commons;inline="org/apache/jackrabbit/util/ISO9075.*|org/apache/jackrabbit/name/QName.*|org/apache/jackrabbit/util/XMLChar.*|org/apache/jackrabbit/util/Text.*",
- guava;inline="com/google/common/collect/Maps*.*|com/google/common/base/Preconditions.*|com/google/common/primitives/Ints.*"
</Embed-Dependency>
<Sling-Namespaces>
- sling=http://sling.apache.org/jcr/sling/1.0
</Sling-Namespaces>
<Sling-Nodetypes>
- SLING-INF/nodetypes/folder.cnd,
- SLING-INF/nodetypes/resource.cnd,
- SLING-INF/nodetypes/vanitypath.cnd,
- SLING-INF/nodetypes/redirect.cnd,
- SLING-INF/nodetypes/mapping.cnd
</Sling-Nodetypes>
</instructions>
</configuration>
@@ -122,21 +113,10 @@
<dependencies>
<dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-api</artifactId>
- <version>2.0.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
</dependency>
<dependency>
- <groupId>javax.jcr</groupId>
- <artifactId>jcr</artifactId>
- <version>2.0</version>
- </dependency>
- <dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</dependency>
@@ -158,12 +138,6 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.api</artifactId>
- <version>2.0.6</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.adapter</artifactId>
<version>2.0.4</version>
<scope>provided</scope>
@@ -216,18 +190,6 @@
</dependency>
<!-- for adapting JCR resources to URLs -->
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-classloader</artifactId>
- <version>1.5.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-jcr-commons</artifactId>
- <version>2.0.0</version>
- <scope>provided</scope>
- </dependency>
<!-- Testing -->
<dependency>
@@ -248,11 +210,5 @@
<version>1.4</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.base</artifactId>
- <version>2.1.0</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
Added: sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/resourceresolverfactory/StarResource.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/resourceresolverfactory/StarResource.java?rev=1240908&view=auto
==============================================================================
--- sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/resourceresolverfactory/StarResource.java (added)
+++ sling/whiteboard/resourceresolverfactory/resourceresolverfactory/src/main/java/org/apache/sling/resourceresolverfactory/StarResource.java Mon Feb 6 07:56:57 2012
@@ -0,0 +1,109 @@
+/*
+ * 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.sling.resourceresolverfactory;
+
+import java.util.Map;
+
+import org.apache.sling.adapter.annotations.Adaptable;
+import org.apache.sling.adapter.annotations.Adapter;
+import org.apache.sling.api.SlingException;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceMetadata;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceUtil;
+import org.apache.sling.api.resource.SyntheticResource;
+import org.apache.sling.api.resource.ValueMap;
+
+/** Used to provide the equivalent of an empty Node for GET requests
+ * to *.something (SLING-344)
+ */
+@Adaptable(adaptableClass = Resource.class, adapters = @Adapter(value = { String.class }))
+public class StarResource extends SyntheticResource {
+
+ final static String SLASH_STAR = "/*";
+ public final static String DEFAULT_RESOURCE_TYPE = "sling:syntheticStarResource";
+
+ private static final String UNSET_RESOURCE_SUPER_TYPE = "<unset>";
+
+ private String resourceSuperType;
+
+ @SuppressWarnings("serial")
+ static class SyntheticStarResourceException extends SlingException {
+ SyntheticStarResourceException(String reason, Throwable cause) {
+ super(reason, cause);
+ }
+ }
+
+ /** True if a StarResource should be used for the given request, if
+ * a real Resource was not found */
+ public static boolean appliesTo(String path) {
+ return path.contains(SLASH_STAR) || path.endsWith(SLASH_STAR);
+ }
+
+ /**
+ * Returns true if the path of the resource ends with the
+ * {@link #SLASH_STAR} and therefore should be considered a star
+ * resource.
+ */
+ public static boolean isStarResource(Resource res) {
+ return res.getPath().endsWith(SLASH_STAR);
+ }
+
+ public StarResource(ResourceResolver resourceResolver, String path) {
+ super(resourceResolver, getResourceMetadata(path), DEFAULT_RESOURCE_TYPE);
+ resourceSuperType = UNSET_RESOURCE_SUPER_TYPE;
+ }
+
+ /**
+ * Calls {@link ResourceUtil#getResourceSuperType(ResourceResolver, String)} method
+ * to dynamically resolve the resource super type of this star resource.
+ */
+ public String getResourceSuperType() {
+ // Yes, this isn't how you're supposed to compare Strings, but this is intentional.
+ if (resourceSuperType == UNSET_RESOURCE_SUPER_TYPE) {
+ resourceSuperType = ResourceUtil.getResourceSuperType(this.getResourceResolver(),
+ this.getResourceType());
+ }
+ return resourceSuperType;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public <Type> Type adaptTo(Class<Type> type) {
+ if ( type == String.class ) {
+ return (Type)"";
+ }
+ return super.adaptTo(type);
+ }
+
+ /** Get our ResourceMetadata for given path */
+ static ResourceMetadata getResourceMetadata(String path) {
+ ResourceMetadata result = new ResourceMetadata();
+
+ // The path is up to /*, what follows is pathInfo
+ final int index = path.indexOf(SLASH_STAR);
+ if(index >= 0) {
+ result.setResolutionPath(path.substring(0, index) + SLASH_STAR);
+ result.setResolutionPathInfo(path.substring(index + SLASH_STAR.length()));
+ } else {
+ result.setResolutionPath(path);
+ }
+ return result;
+ }
+}
\ No newline at end of file