Author: reto
Date: Fri Mar 30 14:44:28 2012
New Revision: 1307450
URL: http://svn.apache.org/viewvc?rev=1307450&view=rev
Log:
connecting vfolders to facets, and encountering problems with milton
Added:
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/
- copied from r1306832,
incubator/stanbol/branches/ontonet-showcase/webdav/
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/
- copied from r1306875,
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/vfolders/
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/vfolders/RootResource.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/resources/OSGI-INF/metatype/metatype.properties
- copied unchanged from r1306954,
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/resources/OSGI-INF/metatype/metatype.properties
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java
(contents, props changed)
- copied, changed from r1306875,
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SlingResourceFactory.java
Removed:
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/sling/whiteboard/fmeschbe/miltondav/impl/AbstractMiltonDavServlet.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/sling/whiteboard/fmeschbe/miltondav/impl/MiltonDavServlet.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/sling/whiteboard/fmeschbe/miltondav/impl/MiltonDavSlingServlet.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/sling/whiteboard/fmeschbe/miltondav/impl/SlingAuthenticationHandler.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/sling/whiteboard/fmeschbe/miltondav/impl/SlingResponseHandler.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/sling/whiteboard/fmeschbe/miltondav/impl/resources/
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/webdav/AbstractMiltonDavServlet.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/webdav/MiltonDavServlet.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/webdav/MiltonDavSlingServlet.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/webdav/SlingAuthenticationHandler.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/webdav/SlingResponseHandler.java
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/webdav/resources/
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SlingResourceFactory.java
Modified:
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/pom.xml
incubator/stanbol/branches/ontonet-showcase/webdav/pom.xml
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/AbstractMiltonDavServlet.java
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/MiltonDavServlet.java
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/RootResource.java
Modified: incubator/stanbol/branches/ontonet-showcase/featured-vfolders/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/featured-vfolders/pom.xml?rev=1307450&r1=1306832&r2=1307450&view=diff
==============================================================================
--- incubator/stanbol/branches/ontonet-showcase/featured-vfolders/pom.xml
(original)
+++ incubator/stanbol/branches/ontonet-showcase/featured-vfolders/pom.xml Fri
Mar 30 14:44:28 2012
@@ -1,127 +1,107 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- 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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.stanbol</groupId>
- <artifactId>stanbol-parent</artifactId>
- <version>0.9.0-incubating-SNAPSHOT</version>
- </parent>
-
- <artifactId>org.apache.stanbol.wedav</artifactId>
- <packaging>bundle</packaging>
- <version>0.1.0-SNAPSHOT</version>
-
- <name>Milton WebDAV based webdav Provider</name>
- <description>
- Bundle to expose the Reosurce Tree as a WebDAV filesystem using the
Milton
- server side WebDAV library. Original version vopied from
http://svn.apache.org/repos/asf/sling/whiteboard/fmeschbe/miltondav
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.stanbol</groupId>
+ <artifactId>stanbol-parent</artifactId>
+ <version>0.9.0-incubating-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>org.apache.stanbol.contenthub.vfolders</artifactId>
+ <packaging>bundle</packaging>
+ <version>0.1.0-SNAPSHOT</version>
+
+ <name>VFolders provider based on featured saerch</name>
+ <description>
</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Import-Package>
- !org.springframework.*,
- !org.apache.xerces.*,
- !org.jaxen.*,
- !oracle.xml.*,
- *
- </Import-Package>
- <Embed-Transitive>true</Embed-Transitive>
- <Embed-Dependency>
- milton-api,
- milton-servlet,
- mime-util,
- jdom,
- commons-codec,
- commons-beanutils
- </Embed-Dependency>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- <version>1.6.0</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- Milton WebDAV support libraries -->
- <dependency>
- <groupId>com.ettrema</groupId>
- <artifactId>milton-api</artifactId>
- <version>1.7.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.ettrema</groupId>
- <artifactId>milton-servlet</artifactId>
- <version>1.7.1</version>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- </dependencies>
- <repositories>
- <repository>
- <id>milton</id>
- <url>http://www.ettrema.com/maven2</url>
- </repository>
- </repositories>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.stanbol</groupId>
+
<artifactId>org.apache.stanbol.contenthub.servicesapi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.stanbol</groupId>
+ <artifactId>org.apache.stanbol.wedav</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+
<artifactId>org.apache.felix.scr.annotations</artifactId>
+ <version>1.6.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Milton WebDAV support libraries -->
+ <dependency>
+ <groupId>com.ettrema</groupId>
+ <artifactId>milton-api</artifactId>
+ <version>1.7.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ettrema</groupId>
+ <artifactId>milton-servlet</artifactId>
+ <version>1.7.1</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ </dependencies>
+ <repositories>
+ <repository>
+ <id>milton</id>
+ <url>http://www.ettrema.com/maven2</url>
+ </repository>
+ </repositories>
</project>
Added:
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/vfolders/RootResource.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/vfolders/RootResource.java?rev=1307450&view=auto
==============================================================================
---
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/vfolders/RootResource.java
(added)
+++
incubator/stanbol/branches/ontonet-showcase/featured-vfolders/src/main/java/org/apache/stanbol/contenthub/vfolders/RootResource.java
Fri Mar 30 14:44:28 2012
@@ -0,0 +1,103 @@
+package org.apache.stanbol.contenthub.vfolders;
+
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.contenthub.servicesapi.search.SearchException;
+import org.apache.stanbol.contenthub.servicesapi.search.featured.FacetResult;
+import
org.apache.stanbol.contenthub.servicesapi.search.featured.FeaturedSearch;
+import org.apache.stanbol.contenthub.servicesapi.search.featured.SearchResult;
+import org.apache.stanbol.webdav.resources.AbstractCollectionResource;
+import org.apache.stanbol.webdav.resources.SlingResource;
+
+import com.bradmcevoy.http.Auth;
+import com.bradmcevoy.http.CollectionResource;
+import com.bradmcevoy.http.PropFindableResource;
+import com.bradmcevoy.http.Request;
+import com.bradmcevoy.http.Request.Method;
+import com.bradmcevoy.http.Resource;
+import com.bradmcevoy.http.SimpleResource;
+
+
+@Component
+@Service(CollectionResource.class)
+public class RootResource extends AbstractCollectionResource implements
PropFindableResource, CollectionResource {
+
+ private static final String FOLDERNAME = "root";
+
+ @Reference
+ FeaturedSearch featuredSearch;
+
+ public String getUniqueId() {
+ return FOLDERNAME;
+ }
+
+
+ public String getName() {
+ return FOLDERNAME;
+ }
+
+
+ public Object authenticate(String user, String password) {
+ return "anonymous";
+ }
+
+
+ public boolean authorise(Request request, Method method, Auth auth) {
+ return true;
+ }
+
+
+ public String getRealm() {
+ return null;
+ }
+
+
+ public Date getCreateDate() {
+ return new Date();
+ }
+
+
+ public Date getModifiedDate() {
+ return new Date();
+ }
+
+
+ public String checkRedirect(Request request) {
+ return null;
+ }
+
+
+ public List<Resource> getChildren() {
+ try {
+ SearchResult searchResult = featuredSearch.search("a*");
+ List<FacetResult> facetResults =
searchResult.getFacets();
+ List<Resource> resources = new ArrayList<Resource>();
+ for (FacetResult fr : facetResults) {
+ final String name =
fr.getFacetField().getName();
+ System.out.println("name: "+name);
+ resources.add(new FacetedResource(name) {});
+ }
+ resources.add(new FacetedResource("foo"));
+ resources.add(new FacetedResource("foo2"));
+ resources.add(new FacetedResource("foo3") {});
+ resources.add(new FacetedResource2("bar") {});
+ resources.add(new FacetedResource2("bar2"));
+ //resources.add(new SlingResource());
+ System.out.println("returning: "+resources);
+ return resources;
+ } catch (SearchException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+
+
+
+}
Modified: incubator/stanbol/branches/ontonet-showcase/webdav/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/webdav/pom.xml?rev=1307450&r1=1307449&r2=1307450&view=diff
==============================================================================
--- incubator/stanbol/branches/ontonet-showcase/webdav/pom.xml (original)
+++ incubator/stanbol/branches/ontonet-showcase/webdav/pom.xml Fri Mar 30
14:44:28 2012
@@ -65,6 +65,7 @@
commons-codec,
commons-beanutils
</Embed-Dependency>
+ <Export-Package>com.bradmcevoy.http,
com.bradmcevoy.http.*, org.apache.stanbol.*</Export-Package>
</instructions>
</configuration>
</plugin>
Modified:
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/AbstractMiltonDavServlet.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/AbstractMiltonDavServlet.java?rev=1307450&r1=1307449&r2=1307450&view=diff
==============================================================================
---
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/AbstractMiltonDavServlet.java
(original)
+++
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/AbstractMiltonDavServlet.java
Fri Mar 30 14:44:28 2012
@@ -18,8 +18,20 @@
*/
package org.apache.stanbol.webdav;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.stanbol.webdav.resources.SimpleResourceFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.bradmcevoy.http.ApplicationConfig;
+import com.bradmcevoy.http.CollectionResource;
import com.bradmcevoy.http.MiltonServlet;
/**
@@ -40,21 +52,33 @@ import com.bradmcevoy.http.MiltonServlet
* and to not create a memory hole. The base class unfortunately uses the
static
* <code>Class.forName(String)</code> which is well-known for this problem.
*/
-public class AbstractMiltonDavServlet extends MiltonServlet {
+@Component(componentAbstract=true)
+public abstract class AbstractMiltonDavServlet extends MiltonServlet {
+
+ private Logger log = LoggerFactory.getLogger(
AbstractMiltonDavServlet.class );
+
+ @Reference
+ private CollectionResource rootResource;
+
+ @Override
+ public void init( ServletConfig config ) throws ServletException {
+ try {
+ //this.config = config;
+ init(new SimpleResourceFactory(rootResource), new
SlingResponseHandler(), new ArrayList<String>());
+ } catch( ServletException ex ) {
+ log.error( "Exception starting milton servlet", ex );
+ throw ex;
+ } catch( Throwable ex ) {
+ log.error( "Exception starting milton servlet", ex );
+ throw new RuntimeException( ex );
+ }
+ }
+
@SuppressWarnings("unchecked")
@Override
protected <T> T instantiate(String className) throws ServletException {
- //TODO have factories and handler be retrieved from service registry
instead of
- //getting class from classloader and instantiate
- try {
- Class<?> c = getClass().getClassLoader().loadClass(className);
- T rf = (T) c.newInstance();
- return rf;
- } catch (Throwable ex) {
- throw new ServletException("Failed to instantiate: " + className,
- ex);
- }
+ throw new RuntimeException("this should not be invoked");
}
}
\ No newline at end of file
Modified:
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/MiltonDavServlet.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/MiltonDavServlet.java?rev=1307450&r1=1307449&r2=1307450&view=diff
==============================================================================
---
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/MiltonDavServlet.java
(original)
+++
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/MiltonDavServlet.java
Fri Mar 30 14:44:28 2012
@@ -33,13 +33,15 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
-import org.apache.stanbol.webdav.resources.SlingResourceFactory;
+import org.apache.stanbol.webdav.resources.SimpleResourceFactory;
import org.osgi.service.http.HttpContext;
import org.osgi.service.http.HttpService;
import org.osgi.service.http.NamespaceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.bradmcevoy.http.CollectionResource;
+
/**
* The <code>MiltonDavServlet</code> is the {@link AbstractMiltonDavServlet}
* extension registering with the OSGi Http Service. As such it implements an
@@ -55,6 +57,7 @@ import org.slf4j.LoggerFactory;
@Component(metatype = true, name =
"org.apache.sling.miltondav.impl.MiltonDavServlet", label = "%miltondav.name",
description = "%miltondav.description")
public class MiltonDavServlet extends AbstractMiltonDavServlet {
+
// default location at which the service is registered
private static final String DEFAULT_PREFIX = "/vfolders";
@@ -130,7 +133,7 @@ public class MiltonDavServlet extends Ab
}
java.util.Properties props = new java.util.Properties();
- props.put("resource.factory.class", SlingResourceFactory.NAME);
+ props.put("resource.factory.class", SimpleResourceFactory.NAME);
props.put("authentication.handler.classes",
SlingAuthenticationHandler.NAME);
props.put("response.handler.class", SlingResponseHandler.NAME);
Modified:
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/RootResource.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/RootResource.java?rev=1307450&r1=1307449&r2=1307450&view=diff
==============================================================================
---
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/RootResource.java
(original)
+++
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/RootResource.java
Fri Mar 30 14:44:28 2012
@@ -13,6 +13,7 @@ import com.bradmcevoy.http.Resource;
public class RootResource implements PropFindableResource, CollectionResource {
+
private static final String FOLDERNAME = "root";
Copied:
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java
(from r1306875,
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SlingResourceFactory.java)
URL:
http://svn.apache.org/viewvc/incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java?p2=incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java&p1=incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SlingResourceFactory.java&r1=1306875&r2=1307450&rev=1307450&view=diff
==============================================================================
---
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SlingResourceFactory.java
(original)
+++
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java
Fri Mar 30 14:44:28 2012
@@ -19,25 +19,38 @@
package org.apache.stanbol.webdav.resources;
import com.bradmcevoy.common.Path;
+import com.bradmcevoy.http.CollectionResource;
import com.bradmcevoy.http.Resource;
import com.bradmcevoy.http.ResourceFactory;
+import com.bradmcevoy.http.exceptions.BadRequestException;
+import com.bradmcevoy.http.exceptions.NotAuthorizedException;
-public class SlingResourceFactory implements ResourceFactory {
-
- final public static String NAME =
"org.apache.stanbol.webdav.resources.SlingResourceFactory";
//SlingResourceFactory.class.getName();
-
- public Resource getResource(String host, String strPath) {
- Path path = Path.path(strPath);
- //STRIP PRECEEDING PATH
- //TODO make this depend on what the dav servlet is
actually configured to
- path = path.getStripFirst();
- if (path.isRoot()) {
- return new RootResource();
- } else if
(path.getFirst().equals(SlingResource.getFilename())) {
- return new SlingResource();
- }
-
- return null;
+public class SimpleResourceFactory implements ResourceFactory {
+
+ final public static String NAME =
"org.apache.stanbol.webdav.resources.SlingResourceFactory"; //
SlingResourceFactory.class.getName();
+ private CollectionResource rootResource;
+
+ public SimpleResourceFactory(CollectionResource rootResource) {
+ this.rootResource = rootResource;
+ }
+
+ public Resource getResource(String host, String strPath) throws
NotAuthorizedException, BadRequestException {
+ Path path = Path.path(strPath);
+ return getResource(host, path);
+ }
+
+ public Resource getResource(String host, Path path) throws
NotAuthorizedException, BadRequestException {
+ // STRIP PRECEEDING PATH
+ // TODO make this depend on what the dav servlet is actually
configured
+ // to
+ path = path.getStripFirst();
+ if (path.isRoot()) {
+ return rootResource;
+ } else {
+ CollectionResource parent =
(CollectionResource)getResource(host,
+ path.getParent());
+ return parent.child(path.getName());
}
-
- }
\ No newline at end of file
+ }
+
+}
\ No newline at end of file
Propchange:
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/stanbol/branches/ontonet-showcase/webdav/src/main/java/org/apache/stanbol/webdav/resources/SimpleResourceFactory.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url