You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2009/07/26 19:49:38 UTC

svn commit: r797963 - /incubator/click/trunk/click/framework/src/org/apache/click/service/ClickResourceService.java

Author: sabob
Date: Sun Jul 26 17:49:38 2009
New Revision: 797963

URL: http://svn.apache.org/viewvc?rev=797963&view=rev
Log:
use new isTemplate method. added javadoc

Modified:
    incubator/click/trunk/click/framework/src/org/apache/click/service/ClickResourceService.java

Modified: incubator/click/trunk/click/framework/src/org/apache/click/service/ClickResourceService.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/click/framework/src/org/apache/click/service/ClickResourceService.java?rev=797963&r1=797962&r2=797963&view=diff
==============================================================================
--- incubator/click/trunk/click/framework/src/org/apache/click/service/ClickResourceService.java (original)
+++ incubator/click/trunk/click/framework/src/org/apache/click/service/ClickResourceService.java Sun Jul 26 17:49:38 2009
@@ -61,6 +61,9 @@
     /** The application template service. */
     protected TemplateService templateService;
 
+    /** The application configuration service. */
+    protected ConfigService configService;
+
     /**
      * @see ResourceService#onInit(ServletContext)
      *
@@ -69,7 +72,7 @@
      */
     public void onInit(ServletContext servletContext) throws IOException {
 
-        ConfigService configService = ClickUtils.getConfigService(servletContext);
+        configService = ClickUtils.getConfigService(servletContext);
         logService = configService.getLogService();
         templateService = configService.getTemplateService();
 
@@ -97,8 +100,7 @@
         String resourcePath = ClickUtils.getResourcePath(request);
 
         // If not a click page and not JSP and not a directory
-        return !resourcePath.endsWith(".htm")
-            && !resourcePath.endsWith(".jsp")
+        return !configService.isTemplate(resourcePath)
             && !resourcePath.endsWith("/");
     }
 
@@ -125,18 +127,7 @@
         }
 
         byte[] resourceData = resourceCache.get(resourcePath);
-
-        OutputStream outputStream = null;
-        try {
-            response.setContentLength(resourceData.length);
-
-            outputStream = response.getOutputStream();
-            outputStream.write(resourceData);
-            outputStream.flush();
-
-        } finally {
-            ClickUtils.close(outputStream);
-        }
+        renderResource(response, resourceData);
     }
 
     // Private Methods --------------------------------------------------------
@@ -311,7 +302,7 @@
             for (Iterator i = resources.iterator(); i.hasNext();) {
                 String resource = (String) i.next();
 
-                if (!resource.endsWith(".htm") && !resource.endsWith(".jsp")
+                if (!configService.isTemplate(resource)
                     && !resource.endsWith("/")) {
 
                     byte[] resourceData =
@@ -325,6 +316,14 @@
         }
     }
 
+    /**
+     * Load the resource for the given resourcePath from the servlet context.
+     *
+     * @param servletContext the application servlet context
+     * @param resourcePath the path of the resource to load
+     * @return the byte array for the given resource path
+     * @throws IOException if the resource could not be loaded
+     */
     private byte[] getServletResourceData(ServletContext servletContext,
         String resourcePath) throws IOException {
 
@@ -343,8 +342,14 @@
         }
     }
 
-    private byte[] getClasspathResourceData(String resourcePath)
-        throws IOException {
+    /**
+     * Load the resource for the given resourcePath from the classpath.
+     *
+     * @param resourcePath the path of the resource to load
+     * @return the byte array for the given resource path
+     * @throws IOException if the resource could not be loaded
+     */
+    private byte[] getClasspathResourceData(String resourcePath) throws IOException {
 
         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
 
@@ -365,4 +370,27 @@
             ClickUtils.close(inputStream);
         }
     }
+
+    /**
+     * Render the given resourceData byte array to the response.
+     *
+     * @param response the response object
+     * @param resourceData the resource byte array
+     * @throws IOException if the resource data could not be rendered
+     */
+    private void renderResource(HttpServletResponse response,
+        byte[] resourceData) throws IOException {
+
+        OutputStream outputStream = null;
+        try {
+            response.setContentLength(resourceData.length);
+
+            outputStream = response.getOutputStream();
+            outputStream.write(resourceData);
+            outputStream.flush();
+
+        } finally {
+            ClickUtils.close(outputStream);
+        }
+    }
 }