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 2010/06/27 09:05:45 UTC
svn commit: r958342 -
/click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java
Author: sabob
Date: Sun Jun 27 07:05:45 2010
New Revision: 958342
URL: http://svn.apache.org/viewvc?rev=958342&view=rev
Log:
revert GAE changes
Modified:
click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java (contents, props changed)
Modified: click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java?rev=958342&r1=958341&r2=958342&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java (original)
+++ click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java Sun Jun 27 07:05:45 2010
@@ -141,8 +141,6 @@ public class XmlConfigService implements
DEFAULT_HEADERS.put("Expires", new Date(1L));
}
- private static final String GOOGLE_APP_ENGINE = "Google App Engine";
-
// ------------------------------------------------ Package Private Members
/** The Map of global page headers. */
@@ -202,9 +200,6 @@ public class XmlConfigService implements
/** The application TemplateService. */
private MessagesMapService messagesMapService;
- /** Flag indicating whether Click is running on Google App Engine. */
- private boolean onGoogleAppEngine = false;
-
// --------------------------------------------------------- Public Methods
/**
@@ -219,8 +214,6 @@ public class XmlConfigService implements
this.servletContext = servletContext;
- onGoogleAppEngine = servletContext.getServerInfo().startsWith(GOOGLE_APP_ENGINE);
-
// Set default logService early to log errors when services fail.
logService = new ConsoleLogService();
messagesMapService = new DefaultMessagesMapService();
@@ -1314,45 +1307,43 @@ public class XmlConfigService implements
*/
private void deployFiles(Element rootElm) throws Exception {
- // Guard agaist GAE which can report that resources are deployable even when they are not
- boolean isResourcesDeployable = onGoogleAppEngine ? false : isResourcesDeployable();
+ boolean isResourcesDeployable = isResourcesDeployable();
if (isResourcesDeployable) {
- if (getLogService().isTraceEnabled()) {
- String deployTarget = servletContext.getRealPath("/");
- getLogService().trace("resource deploy folder: "
- + deployTarget);
- }
+ try {
+ if (getLogService().isTraceEnabled()) {
+ String deployTarget = servletContext.getRealPath("/");
+ getLogService().trace("resource deploy folder: "
+ + deployTarget);
+ }
- deployControls(getResourceRootElement("/click-controls.xml"));
- deployControls(getResourceRootElement("/extras-controls.xml"));
- deployControls(rootElm);
- deployControlSets(rootElm);
- deployResourcesOnClasspath();
+ deployControls(getResourceRootElement("/click-controls.xml"));
+ deployControls(getResourceRootElement("/extras-controls.xml"));
+ deployControls(rootElm);
+ deployControlSets(rootElm);
+ deployResourcesOnClasspath();
+
+ } catch (Error ignore) {
+ // Google App Engine (GAE) can indicate that resources are deployable
+ // when they are not, and will throw an error if restricted classes
+ // such as FileOutputStream are accessed. We will log a warning
+ // to indicate that resources could not be deployed.
+ isResourcesDeployable = false;
+ }
}
if (!isResourcesDeployable) {
-
- HtmlStringBuffer buffer = new HtmlStringBuffer();
- if (onGoogleAppEngine) {
- buffer.append("Google App Engine does not support deploying");
- buffer.append(" resources to the 'click' web folder.\n");
-
- } else {
- buffer.append("could not deploy Click resources to the 'click'");
- buffer.append(" web folder.\nThis can occur if the call to");
- buffer.append(" ServletContext.getRealPath(\"/\") returns null, which means");
- buffer.append(" the web application cannot determine the file system path");
- buffer.append(" to deploy files to. This issue also occurs if the web");
- buffer.append(" application is not allowed to write to the file");
- buffer.append(" system.\n");
- }
-
- buffer.append("To resolve this issue please see the Click user-guide:");
- buffer.append(" http://click.apache.org/docs/user-guide/html/ch04s03.html#deploying-restricted-env");
- buffer.append(" \nIgnore this warning once you have settled on a");
- buffer.append(" deployment strategy");
- getLogService().warn(buffer.toString());
+ String msg = "could not deploy Click resources to the"
+ + " 'click' web folder.\nThis can occur if the call to"
+ + " ServletContext.getRealPath(\"/\") returns null, which means"
+ + " the web application cannot determine the file system path"
+ + " to deploy files to. Another common problem is if the web"
+ + " application is not allowed to write to the file"
+ + " system.\nTo resolve this issue please see the Click user-guide:"
+ + " http://click.apache.org/docs/user-guide/html/ch04s03.html#deploying-restricted-env"
+ + " \nIgnore this warning in the future once you have settled on a"
+ + " deployment strategy";
+ getLogService().warn(msg);
}
}
@@ -1768,18 +1759,6 @@ public class XmlConfigService implements
List fileList = new ArrayList();
Set resources = servletContext.getResourcePaths("/");
- if (onGoogleAppEngine) {
- // resources could be immutable so create copy
- Set tempResources = new HashSet();
-
- // Load the two GAE preconfigured automapped folders
- tempResources.addAll(servletContext.getResourcePaths("/page"));
- tempResources.addAll(servletContext.getResourcePaths("/pages"));
- tempResources.addAll(resources);
-
- // assign copy to resources
- resources = Collections.unmodifiableSet(tempResources);
- }
// Add all resources within web application
for (Iterator i = resources.iterator(); i.hasNext();) {
Propchange: click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java
('svn:mergeinfo' removed)