Author: fmeschbe
Date: Thu Nov  8 00:00:24 2007
New Revision: 593050

URL: http://svn.apache.org/viewvc?rev=593050&view=rev
Log:
SLING-83 Package reorgnaization and SLING-98 API adoption (work in progress)

Added:
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileObject.java
      - copied, changed from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderObject.java
      - copied, changed from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyNodeObject.java
      - copied, changed from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceObject.java
      - copied, changed from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceObject.java
      - copied, changed from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceContent.java
Removed:
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceContent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceContent.java
Modified:
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileComponent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderComponent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceComponent.java
    
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceComponent.java

Modified: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileComponent.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileComponent.java?rev=593050&r1=593049&r2=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileComponent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileComponent.java
 Thu Nov  8 00:00:24 2007
@@ -18,12 +18,14 @@
 
 import java.io.IOException;
 
-import org.apache.sling.component.ComponentException;
-import org.apache.sling.component.ComponentRequest;
-import org.apache.sling.component.ComponentRequestDispatcher;
-import org.apache.sling.component.ComponentResponse;
-import org.apache.sling.component.Content;
-import org.apache.sling.core.components.BaseComponent;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+
+import org.apache.sling.api.SlingException;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 
 /**
  * The <code>FileComponent</code> TODO
@@ -32,39 +34,35 @@
  * @scr.property name="service.description"
  *          value="Component to handle nt:file content"
  * @scr.property name="service.vendor" value="The Apache Software Foundation"
+ * @scr.property name="sling.resourceTypes" value="nt:file"
  * @scr.service
  */
-public class FileComponent extends BaseComponent {
-
-    public static final String ID = FileComponent.class.getName();
-
-    {
-        this.setContentClassName(FileContent.class.getName());
-        this.setComponentId(ID);
-    }
-
-    public Content createContentInstance() {
-        return new FileContent();
-    }
+public class FileComponent extends SlingAllMethodsServlet {
 
     // nothing to do
     protected void doInit() {
     }
 
-    /**
-     * @see 
org.apache.sling.core.component.Component#service(org.apache.sling.core.component.ComponentRequest,
 org.apache.sling.core.component.ComponentResponse)
-     */
-    public void service(ComponentRequest request, ComponentResponse response)
-            throws IOException, ComponentException {
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+
+        Resource resource = request.getResource();
+        FileObject file = (FileObject) resource.getObject();
+        if (file == null) {
+            throw new SlingException("Missing mapped object for file "
+                + resource.getURI());
+        }
 
         // just render the child content
-        Content jcrContent = request.getContent("jcr:content");
+        Resource jcrContent = 
request.getResourceResolver().getResource(resource, "jcr:content");
         if (jcrContent != null) {
-            ComponentRequestDispatcher crd = 
this.getComponentContext().getRequestDispatcher(
-                jcrContent);
-            crd.include(request, response);
+            RequestDispatcher rd = request.getRequestDispatcher(jcrContent);
+            rd.include(request, response);
         } else {
-            throw new ComponentException("No content");
+            throw new SlingException("File " + resource.getURI()
+                + " has no content");
         }
     }
 }

Copied: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileObject.java
 (from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileContent.java)
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileObject.java?p2=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileObject.java&p1=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileContent.java&r1=593046&r2=593050&rev=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileContent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FileObject.java
 Thu Nov  8 00:00:24 2007
@@ -17,18 +17,22 @@
 package org.apache.sling.component.servlets.standard;
 
 /**
- * The <code>FileContent</code> class represents an nt:file node in the
+ * The <code>FileObject</code> class represents an nt:file node in the
  * repository and as such has no more direct content data as the
  * [EMAIL PROTECTED] HierarchyNodeObject}.
  *
  * @ocm.mapped jcrType="nt:file" discriminator="false"
  */
-public class FileContent extends HierarchyNodeObject {
+public class FileObject extends HierarchyNodeObject {
 
-    // --------- Content interface 
---------------------------------------------
+    /** @ocm.bean jcrName="jcr:content" */
+    private Object content;
 
-    public String getComponentId() {
-        return FileComponent.ID;
+    public void setContent(Object content) {
+        this.content = content;
     }
 
+    public Object getContent() {
+        return content;
+    }
 }

Modified: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderComponent.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderComponent.java?rev=593050&r1=593049&r2=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderComponent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderComponent.java
 Thu Nov  8 00:00:24 2007
@@ -18,13 +18,15 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.Enumeration;
+import java.util.Iterator;
 
-import org.apache.sling.component.ComponentException;
-import org.apache.sling.component.ComponentRequest;
-import org.apache.sling.component.ComponentResponse;
-import org.apache.sling.component.Content;
-import org.apache.sling.core.components.BaseComponent;
+import javax.servlet.ServletException;
+
+import org.apache.sling.api.SlingException;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 
 /**
  * The <code>FolderComponent</code> TODO
@@ -33,33 +35,25 @@
  * @scr.property name="service.description"
  *          value="Component to handle nt:folder content"
  * @scr.property name="service.vendor" value="The Apache Software Foundation"
+ * @scr.property name="sling.resourceTypes" value="nt:folder"
  * @scr.service
  */
-public class FolderComponent extends BaseComponent {
-
-    public static final String ID = FolderComponent.class.getName();
-
-    {
-        this.setContentClassName(FolderContent.class.getName());
-        this.setComponentId(ID);
-    }
-
-    /**
-     * @see 
org.apache.sling.core.components.BaseComponent#createContentInstance()
-     */
-    public Content createContentInstance() {
-        return new FolderContent();
-    }
+public class FolderComponent extends SlingAllMethodsServlet {
 
     // nothing to do
     protected void doInit() {}
 
-    /**
-     * @see 
org.apache.sling.core.component.Component#service(org.apache.sling.core.component.ComponentRequest,
 org.apache.sling.core.component.ComponentResponse)
-     */
-    public void service(ComponentRequest request, ComponentResponse response)
-            throws IOException {
-        FolderContent content = (FolderContent) request.getContent();
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+
+        Resource resource = request.getResource();
+        FolderObject content = (FolderObject) resource.getObject();
+        if (content == null) {
+            throw new SlingException("Missing mapped object for folder "
+                + resource.getURI());
+        }
 
         response.setContentType("text/html");
         PrintWriter pw = response.getWriter();
@@ -70,12 +64,12 @@
         pw.println("<ul>");
 
         try {
-            Enumeration<Content> entries = request.getChildren(content);
-            while (entries.hasMoreElements()) {
-                Content entry = entries.nextElement();
-                pw.println("<li>" + entry.getPath() + "</li>");
+            Iterator<Resource> entries = 
request.getResourceResolver().listChildren(resource);
+            while (entries.hasNext()) {
+                Resource entry = entries.next();
+                pw.println("<li>" + entry.getURI() + "</li>");
             }
-        } catch (ComponentException ce) {
+        } catch (SlingException ce) {
             // TODO: handle
         }
 

Copied: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderObject.java
 (from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderContent.java)
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderObject.java?p2=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderObject.java&p1=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderContent.java&r1=593046&r2=593050&rev=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderContent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/FolderObject.java
 Thu Nov  8 00:00:24 2007
@@ -17,16 +17,10 @@
 package org.apache.sling.component.servlets.standard;
 
 /**
- * The <code>FolderContent</code> TODO
+ * The <code>FolderObject</code> TODO
  *
  * @ocm.mapped jcrType="nt:folder" discriminator="false"
  */
-public class FolderContent extends HierarchyNodeObject {
-
-    // --------- Content interface 
---------------------------------------------
-
-    public String getComponentId() {
-        return FolderComponent.ID;
-    }
+public class FolderObject extends HierarchyNodeObject {
 
 }

Copied: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyNodeObject.java
 (from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyContent.java)
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyNodeObject.java?p2=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyNodeObject.java&p1=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyContent.java&r1=593046&r2=593050&rev=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyContent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/HierarchyNodeObject.java
 Thu Nov  8 00:00:24 2007
@@ -16,27 +16,24 @@
  */
 package org.apache.sling.component.servlets.standard;
 
+import org.apache.sling.jcr.resource.AbstractMappedObject;
+
 /**
- * The <code>HierarchyNodeObject</code> class is an abstract base content class
- * for content loaded from nodes of (extensions of) node type
+ * The <code>HierarchyNodeObject</code> class is an abstract base content
+ * class for content loaded from nodes of (extensions of) node type
  * <code>nt:HierarchyNode</code>.
  *
  * @ocm.mapped jcrType="nt:hierarchyNode" discriminator="false"
  */
-public abstract class HierarchyContent  {
+public abstract class HierarchyNodeObject extends AbstractMappedObject {
 
     /** @ocm.field jcrName="jcr:created" */
     private long creationTime;
 
-    // ---------- Mapped Content 
-----------------------------------------------
-
     public long getCreationTime() {
         return this.creationTime;
     }
 
-    /**
-     * @param creationTime the creationTime to set
-     */
     public void setCreationTime(long creationTime) {
         this.creationTime = creationTime;
     }

Modified: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceComponent.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceComponent.java?rev=593050&r1=593049&r2=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceComponent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceComponent.java
 Thu Nov  8 00:00:24 2007
@@ -18,37 +18,26 @@
 
 import java.io.IOException;
 
-import org.apache.sling.component.ComponentException;
-import org.apache.sling.component.ComponentRequest;
-import org.apache.sling.component.ComponentRequestDispatcher;
-import org.apache.sling.component.ComponentResponse;
-import org.apache.sling.component.Content;
-import org.apache.sling.core.components.BaseComponent;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+
+import org.apache.sling.api.SlingException;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 
 /**
  * The <code>ReferenceComponent</code> TODO
  *
  * @scr.component immediate="true" metatype="false"
  * @scr.property name="service.description"
- *          value="Component to handle sling:Reference content"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
+ *             value="Component to handle sling:Reference content"
+ * @scr.property name="service.vendor" value="The Apache Software Foundation" *
+ * @scr.property name="sling.resourceTypes" value="sling:Reference"
  * @scr.service
  */
-public class ReferenceComponent extends BaseComponent {
-
-    public static final String ID = ReferenceComponent.class.getName();
-
-    {
-        this.setContentClassName(ReferenceContent.class.getName());
-        this.setComponentId(ID);
-    }
-
-    /**
-     * @see 
org.apache.sling.core.components.BaseComponent#createContentInstance()
-     */
-    public Content createContentInstance() {
-        return new ReferenceContent();
-    }
+public class ReferenceComponent extends SlingAllMethodsServlet {
 
     /**
      * @see org.apache.sling.core.components.BaseComponent#doInit()
@@ -57,23 +46,23 @@
         // nothing to do
     }
 
-    /**
-     * @see 
org.apache.sling.core.component.Component#service(org.apache.sling.core.component.ComponentRequest,
 org.apache.sling.core.component.ComponentResponse)
-     */
-    public void service(ComponentRequest request, ComponentResponse response)
-            throws IOException, ComponentException {
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
 
-        final ReferenceContent content = 
(ReferenceContent)request.getContent();
+        final Resource resource = request.getResource();
+        final ReferenceObject content = (ReferenceObject) resource.getObject();
         final String path = content.getReference();
 
         // just forward to the referenced content
-        Content jcrContent = request.getContent(path);
-        if (jcrContent != null) {
-            ComponentRequestDispatcher crd = 
this.getComponentContext().getRequestDispatcher(
-                jcrContent);
-            crd.include(request, response);
+        Resource target = request.getResourceResolver().getResource(resource,
+            path);
+        if (target != null) {
+            RequestDispatcher rd = request.getRequestDispatcher(target);
+            rd.include(request, response);
         } else {
-            throw new ComponentException("No content for path " + path);
+            throw new SlingException("No content for path " + path);
         }
     }
 }

Copied: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceObject.java
 (from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceContent.java)
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceObject.java?p2=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceObject.java&p1=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceContent.java&r1=593046&r2=593050&rev=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceContent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ReferenceObject.java
 Thu Nov  8 00:00:24 2007
@@ -16,13 +16,14 @@
  */
 package org.apache.sling.component.servlets.standard;
 
+import org.apache.sling.jcr.resource.AbstractMappedObject;
 
 /**
- * The <code>ReferenceContent</code> TODO
+ * The <code>ReferenceObject</code> TODO
  *
  * @ocm.mapped jcrType="sling:Reference" discriminator="false"
  */
-public class ReferenceContent extends 
org.apache.sling.content.jcr.SimpleContent {
+public class ReferenceObject extends AbstractMappedObject {
 
     /** @ocm.field jcrName="sling:path" */
     private String reference;
@@ -41,10 +42,5 @@
      */
     public void setReference(String value) {
         this.reference = value;
-    }
-    // --------- Content interface 
---------------------------------------------
-
-    public String getComponentId() {
-        return ReferenceComponent.ID;
     }
 }

Modified: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceComponent.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceComponent.java?rev=593050&r1=593049&r2=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceComponent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceComponent.java
 Thu Nov  8 00:00:24 2007
@@ -16,79 +16,54 @@
  */
 package org.apache.sling.component.servlets.standard;
 
+import static javax.servlet.http.HttpServletResponse.SC_NOT_MODIFIED;
+import static 
org.apache.sling.api.servlets.HttpConstants.HEADER_IF_MODIFIED_SINCE;
+import static org.apache.sling.api.servlets.HttpConstants.HEADER_LAST_MODIFIED;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
 import javax.jcr.RepositoryException;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.io.IOUtils;
-import org.apache.sling.component.ComponentRequest;
-import org.apache.sling.component.ComponentResponse;
-import org.apache.sling.component.Content;
-import org.apache.sling.core.RequestUtil;
-import org.apache.sling.core.components.BaseComponent;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 
 /**
  * The <code>ResourceComponent</code> TODO
  *
  * @scr.component immediate="true" metatype="false"
- * @scr.property name="service.description"
- *          value="Component to handle nt:resource content"
+ * @scr.property name="service.description" value="Component to handle
+ *               nt:resource content"
  * @scr.property name="service.vendor" value="The Apache Software Foundation"
+ * @scr.property name="sling.resourceTypes" value="nt:resource"
  * @scr.service
  */
-public class ResourceComponent extends BaseComponent {
-
-    public static final String ID = ResourceComponent.class.getName();
-
-    /**
-     * The name of the header used to send the last modification date of the
-     * resource (value is "Last-Modified").
-     */
-    private static final String LAST_MODIFIED = "Last-Modified";
-
-    /**
-     * The name of the header checked for a conditional modification date to
-     * compare to the resource's last modification date (value is
-     * "If-Modified-Since").
-     */
-    private static final String IF_MODIFIED_SINCE = "If-Modified-Since";
-
-    {
-        this.setContentClassName(ResourceContent.class.getName());
-        this.setComponentId(ID);
-    }
-
-    /**
-     * @see 
org.apache.sling.core.components.BaseComponent#createContentInstance()
-     */
-    public Content createContentInstance() {
-        return new ResourceContent();
-    }
+public class ResourceComponent extends SlingAllMethodsServlet {
 
     // nothing to do
-    protected void doInit() {}
+    protected void doInit() {
+    }
 
-    /**
-     * @see 
org.apache.sling.core.component.Component#service(org.apache.sling.core.component.ComponentRequest,
 org.apache.sling.core.component.ComponentResponse)
-     */
-    public void service(ComponentRequest request, ComponentResponse response)
-            throws IOException {
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws IOException {
 
-        ResourceContent content = (ResourceContent) request.getContent();
+        Resource resource = request.getResource();
+        ResourceObject content = (ResourceObject) resource.getObject();
 
         // check the last modification time and If-Modified-Since header
         long modifTime = content.getLastModificationTime();
-        if (this.unmodified(request, modifTime)) {
+        if (unmodified(request, modifTime)) {
 
-            response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+            response.setStatus(SC_NOT_MODIFIED);
 
         } else {
 
             response.setContentType(content.getMimeType());
-            response.setHeader(LAST_MODIFIED, 
RequestUtil.toDateString(modifTime));
+            response.setDateHeader(HEADER_LAST_MODIFIED, modifTime);
 
             OutputStream out = response.getOutputStream();
             InputStream ins = null;
@@ -117,9 +92,8 @@
      *         or equal to the time of the <code>If-Modified-Since</code>
      *         header.
      */
-    private boolean unmodified(ComponentRequest request, long modifTime) {
-        String par = request.getHeader(IF_MODIFIED_SINCE);
-        long ims = RequestUtil.toDateValue(par);
+    private boolean unmodified(SlingHttpServletRequest request, long 
modifTime) {
+        long ims = request.getDateHeader(HEADER_IF_MODIFIED_SINCE);
         return modifTime <= ims;
     }
 }

Copied: 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceObject.java
 (from r593046, 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceContent.java)
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceObject.java?p2=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceObject.java&p1=incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceContent.java&r1=593046&r2=593050&rev=593050&view=diff
==============================================================================
--- 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceContent.java
 (original)
+++ 
incubator/sling/trunk/sling/servlets-standard/src/main/java/org/apache/sling/component/servlets/standard/ResourceObject.java
 Thu Nov  8 00:00:24 2007
@@ -18,14 +18,14 @@
 
 import javax.jcr.Value;
 
-import org.apache.sling.core.content.SelectableSimpleContent;
+import org.apache.sling.jcr.resource.AbstractMappedObject;
 
 /**
- * The <code>ResourceContent</code> TODO
+ * The <code>ResourceObject</code> TODO
  *
  * @ocm.mapped jcrType="nt:resource" discriminator="false"
  */
-public class ResourceContent extends SelectableSimpleContent {
+public class ResourceObject extends AbstractMappedObject {
 
     /** @ocm.field jcrName="jcr:lastModified" */
     private long lastModificationTime;
@@ -95,11 +95,5 @@
      */
     public void setValue(Value value) {
         this.value = value;
-    }
-
-    // --------- Content interface 
---------------------------------------------
-
-    public String getComponentId() {
-        return ResourceComponent.ID;
     }
 }


Reply via email to