[ 
https://issues.apache.org/jira/browse/MYFACES-2504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804170#action_12804170
 ] 

Ali Ok edited comment on MYFACES-2504 at 2/5/10 10:00 AM:
----------------------------------------------------------

In order to run MyFaces on Google App Engine with this patch, you must
1. Use Facelets.
2. Set org.apache.myfaces.config.annotation.LifecycleProvider context param to 
org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider. 
Since AllAnnotationLifecycleProvider and ResourceAnnotationLifecycleProvider 
providers need javax.naming.Context which is a restricted class on GAE, we must 
use NoInjectionAnnotationLifecycleProvider or NoAnnotationLifecyleProvider.

Reasons for code changes:
1. In Jsp21FacesInitializer.initContainerIntegration() method, I got 
AbstractMethodError. It seems like GAE container passes the JSP 2.1 test, but 
the JSP engine implementation fails to implement 
javax.servlet.jsp.JspFactory.getJspApplicationContext method. So, if server is 
detected as GAE, container is treated like JSP 2.0 (or less).
2. I got java.security.AccessControlException on method 
org.apache.myfaces.config.FacesConfigurator.getLastModifiedTime(). Google App 
Engine does not allow to get last modified time of a file and when an 
application is running on GAE there is no way to update faces config xml file. 
Thus, no need to check if the config file is modified.


Example configuration:
<context-param>
        
<param-name>org.apache.myfaces.config.annotation.LifecycleProvider</param-name>
        
<param-value>org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider</param-value>
</context-param>


Please review it.
Since this is my first patch, I would appreciate your long explanations.


Edit: I changed my comment. 
Please see " 2504-doc.diff " for the configuration.

      was (Author: aliok-com-tr):
    ----IGNORE THIS Comment----

In order to run MyFaces on Google App Engine with this patch, you must
1. Use Facelets.
2. Set org.apache.myfaces.config.annotation.LifecycleProvider context param to 
org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider. 
Since AllAnnotationLifecycleProvider and ResourceAnnotationLifecycleProvider 
providers need javax.naming.Context which is a restricted class on GAE, we must 
use NoInjectionAnnotationLifecycleProvider or NoAnnotationLifecyleProvider.

Reasons for code changes:
1. In Jsp21FacesInitializer.initContainerIntegration() method, I got 
AbstractMethodError. It seems like GAE container passes the JSP 2.1 test, but 
the JSP engine implementation fails to implement 
javax.servlet.jsp.JspFactory.getJspApplicationContext method. So, if server is 
detected as GAE, container is treated like JSP 2.0 (or less).
2. I got java.security.AccessControlException on method 
org.apache.myfaces.config.FacesConfigurator.getLastModifiedTime(). Google App 
Engine does not allow to get last modified time of a file and when an 
application is running on GAE there is no way to update faces config xml file. 
Thus, no need to check if the config file is modified.


Example configuration:
<context-param>
        
<param-name>org.apache.myfaces.config.annotation.LifecycleProvider</param-name>
        
<param-value>org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider</param-value>
</context-param>


Please review it.
Since this is my first patch, I would appreciate your long explanations.


Edit: I changed my comment. 
Please see " 2504-doc.diff " for the configuration.
  
> Google App Engine Support
> -------------------------
>
>                 Key: MYFACES-2504
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2504
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: JSR-252, JSR-314
>    Affects Versions: 1.2.8, 2.0.0-alpha
>         Environment: Google App Engine 1.3
>            Reporter: Ali Ok
>            Priority: Minor
>         Attachments: 2504-4.diff, 2504-doc.diff
>
>
> Support for Google App Engine for MyFaces 1.2 and 2.0.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to