You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Prakash Udupa (Updated) (JIRA)" <de...@myfaces.apache.org> on 2012/02/26 07:21:52 UTC

[jira] [Updated] (TRINIDAD-2226) Provide mechanism to reload skin definitions from trinidad-skins.xml

     [ https://issues.apache.org/jira/browse/TRINIDAD-2226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Prakash Udupa updated TRINIDAD-2226:
------------------------------------

    Status: Patch Available  (was: Open)
    
> Provide mechanism to reload skin definitions from trinidad-skins.xml
> --------------------------------------------------------------------
>
>                 Key: TRINIDAD-2226
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2226
>             Project: MyFaces Trinidad
>          Issue Type: Improvement
>          Components: Skinning
>    Affects Versions: 2.0.2-core
>            Reporter: Prakash Udupa
>         Attachments: JIRA_2226_Patch_over_1_2_12_6_2_branch.patch, JIRA_2226_Patch_over_trunk.patch
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> Currently there is no way to be able to update the skins to an app at runtime without needing to restart the app. Request here is to provide it in Trinidad's skinning framework.
> Requirement: Provide an API that complies to the following:
> -------------------------------------------------------------------------------------
> 1. Reads (or marks it dirty so that it is read in next request) trinidad-skins.xml and update the new skin definitions as per its contents
> 2. Subsequent requests on the webapp should reflect the skin definitions from trinidad-skins.xml that was re-read
> 3. Should be statically called (because the clients of such API are usually deployment tools that work outside of JSF lifecycle)
> 4. Cannot depend on any context object other than ServletContext (because that is what a non-JSF entry point to this API can provide)
> Proposed API:
> ---------------------
> 1. New public non-static method in 'org.apache.myfaces.trinidad.skin.SkinFactory'
> /**
>  * Reloads the skins that was registered with this factory.
>  * Subclassers are expected to provide the implementation.
>  */
> public void reload()
> - We implement this in 'org.apache.myfaces.trinidadinternal.skin.SkinFactoryImpl'. In this implementation we will preserve the order in which we register skins, which is the following:
>      a) Register the base skins in Trinidad
>      b) Give chance to all registered Configurator services to attach their skins to the SkinFactory programatically.
>      c) Read trinidad-skins.xml from META-INF and WEB-INF, and for the skin definitions in there, create Skins and register with the SkinFactory
> - Clients will call 'SkinFactory.getFactory().reload();' after updating the trinidad-skins.xml to be able to reload the skins in the next request to the app (browser cache clearance / Ctrl+F5 is of course needed).
> 2. New public method in 'org.apache.myfaces.trinidad.config.Configurator'
> /**
>  * The skinning framework calls this method to notify Configurators that the specified SkinFactory has been reloaded.
>  * The Configurator implementations may choose to reload skins here.
>  * @param externalContext the external context
>  * @param factory the SkinFactory instance to which the skins can be reloaded
>  */
>  public void reloadSkins(ExternalContext externalContext, SkinFactory factory){}
> - This method will be no-op in the Configurator class, and can optionally be implemented by any registered configurator services.
> - The reload() method noted in #1 above will call this method on all registered configurator services before attempting to register the skins from trinidad-skins.xml that it will re-read now. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Re: [jira] [Updated] (TRINIDAD-2226) Provide mechanism to reload skin definitions from trinidad-skins.xml

Posted by Scott O'Bryan <sc...@oracle.com>.
Prakash,

Try to ping us directly via internal mail if you want something committed.  I don't have time to monitor the internal queue and most ppl ping me directly if they need something committed for Oracle.

Thanks,
  Scott

Sent from my iPhone

On Feb 27, 2012, at 8:51 AM, Prakash Udupa <pr...@oracle.com> wrote:

> Can one of the developers please commit my patches on the two branches if found okay ?.
> 
> Thanks,
> Prakash
> 
> On 2/26/2012 12:21 AM, Prakash Udupa (Updated) (JIRA) wrote:
>> 
>>      [ https://issues.apache.org/jira/browse/TRINIDAD-2226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>> 
>> Prakash Udupa updated TRINIDAD-2226:
>> ------------------------------------
>> 
>>     Status: Patch Available  (was: Open)
>>     
>>> Provide mechanism to reload skin definitions from trinidad-skins.xml
>>> --------------------------------------------------------------------
>>> 
>>>                 Key: TRINIDAD-2226
>>>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2226
>>>             Project: MyFaces Trinidad
>>>          Issue Type: Improvement
>>>          Components: Skinning
>>>    Affects Versions: 2.0.2-core
>>>            Reporter: Prakash Udupa
>>>         Attachments: JIRA_2226_Patch_over_1_2_12_6_2_branch.patch, JIRA_2226_Patch_over_trunk.patch
>>> 
>>>   Original Estimate: 48h
>>>  Remaining Estimate: 48h
>>> 
>>> Currently there is no way to be able to update the skins to an app at runtime without needing to restart the app. Request here is to provide it in Trinidad's skinning framework.
>>> Requirement: Provide an API that complies to the following:
>>> -------------------------------------------------------------------------------------
>>> 1. Reads (or marks it dirty so that it is read in next request) trinidad-skins.xml and update the new skin definitions as per its contents
>>> 2. Subsequent requests on the webapp should reflect the skin definitions from trinidad-skins.xml that was re-read
>>> 3. Should be statically called (because the clients of such API are usually deployment tools that work outside of JSF lifecycle)
>>> 4. Cannot depend on any context object other than ServletContext (because that is what a non-JSF entry point to this API can provide)
>>> Proposed API:
>>> ---------------------
>>> 1. New public non-static method in 'org.apache.myfaces.trinidad.skin.SkinFactory'
>>> /**
>>>  * Reloads the skins that was registered with this factory.
>>>  * Subclassers are expected to provide the implementation.
>>>  */
>>> public void reload()
>>> - We implement this in 'org.apache.myfaces.trinidadinternal.skin.SkinFactoryImpl'. In this implementation we will preserve the order in which we register skins, which is the following:
>>>      a) Register the base skins in Trinidad
>>>      b) Give chance to all registered Configurator services to attach their skins to the SkinFactory programatically.
>>>      c) Read trinidad-skins.xml from META-INF and WEB-INF, and for the skin definitions in there, create Skins and register with the SkinFactory
>>> - Clients will call 'SkinFactory.getFactory().reload();' after updating the trinidad-skins.xml to be able to reload the skins in the next request to the app (browser cache clearance / Ctrl+F5 is of course needed).
>>> 2. New public method in 'org.apache.myfaces.trinidad.config.Configurator'
>>> /**
>>>  * The skinning framework calls this method to notify Configurators that the specified SkinFactory has been reloaded.
>>>  * The Configurator implementations may choose to reload skins here.
>>>  * @param externalContext the external context
>>>  * @param factory the SkinFactory instance to which the skins can be reloaded
>>>  */
>>>  public void reloadSkins(ExternalContext externalContext, SkinFactory factory){}
>>> - This method will be no-op in the Configurator class, and can optionally be implemented by any registered configurator services.
>>> - The reload() method noted in #1 above will call this method on all registered configurator services before attempting to register the skins from trinidad-skins.xml that it will re-read now. 
>> --
>> This message is automatically generated by JIRA.
>> If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>> For more information on JIRA, see: http://www.atlassian.com/software/jira
>> 
>>         
>> 

Re: [jira] [Updated] (TRINIDAD-2226) Provide mechanism to reload skin definitions from trinidad-skins.xml

Posted by Prakash Udupa <pr...@oracle.com>.
Can one of the developers please commit my patches on the two branches if found okay ?.

Thanks,
Prakash

On 2/26/2012 12:21 AM, Prakash Udupa (Updated) (JIRA) wrote:
>       [ https://issues.apache.org/jira/browse/TRINIDAD-2226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Prakash Udupa updated TRINIDAD-2226:
> ------------------------------------
>
>      Status: Patch Available  (was: Open)
>
>> Provide mechanism to reload skin definitions from trinidad-skins.xml
>> --------------------------------------------------------------------
>>
>>                  Key: TRINIDAD-2226
>>                  URL: https://issues.apache.org/jira/browse/TRINIDAD-2226
>>              Project: MyFaces Trinidad
>>           Issue Type: Improvement
>>           Components: Skinning
>>     Affects Versions: 2.0.2-core
>>             Reporter: Prakash Udupa
>>          Attachments: JIRA_2226_Patch_over_1_2_12_6_2_branch.patch, JIRA_2226_Patch_over_trunk.patch
>>
>>    Original Estimate: 48h
>>   Remaining Estimate: 48h
>>
>> Currently there is no way to be able to update the skins to an app at runtime without needing to restart the app. Request here is to provide it in Trinidad's skinning framework.
>> Requirement: Provide an API that complies to the following:
>> -------------------------------------------------------------------------------------
>> 1. Reads (or marks it dirty so that it is read in next request) trinidad-skins.xml and update the new skin definitions as per its contents
>> 2. Subsequent requests on the webapp should reflect the skin definitions from trinidad-skins.xml that was re-read
>> 3. Should be statically called (because the clients of such API are usually deployment tools that work outside of JSF lifecycle)
>> 4. Cannot depend on any context object other than ServletContext (because that is what a non-JSF entry point to this API can provide)
>> Proposed API:
>> ---------------------
>> 1. New public non-static method in 'org.apache.myfaces.trinidad.skin.SkinFactory'
>> /**
>>   * Reloads the skins that was registered with this factory.
>>   * Subclassers are expected to provide the implementation.
>>   */
>> public void reload()
>> - We implement this in 'org.apache.myfaces.trinidadinternal.skin.SkinFactoryImpl'. In this implementation we will preserve the order in which we register skins, which is the following:
>>       a) Register the base skins in Trinidad
>>       b) Give chance to all registered Configurator services to attach their skins to the SkinFactory programatically.
>>       c) Read trinidad-skins.xml from META-INF and WEB-INF, and for the skin definitions in there, create Skins and register with the SkinFactory
>> - Clients will call 'SkinFactory.getFactory().reload();' after updating the trinidad-skins.xml to be able to reload the skins in the next request to the app (browser cache clearance / Ctrl+F5 is of course needed).
>> 2. New public method in 'org.apache.myfaces.trinidad.config.Configurator'
>> /**
>>   * The skinning framework calls this method to notify Configurators that the specified SkinFactory has been reloaded.
>>   * The Configurator implementations may choose to reload skins here.
>>   * @param externalContext the external context
>>   * @param factory the SkinFactory instance to which the skins can be reloaded
>>   */
>>   public void reloadSkins(ExternalContext externalContext, SkinFactory factory){}
>> - This method will be no-op in the Configurator class, and can optionally be implemented by any registered configurator services.
>> - The reload() method noted in #1 above will call this method on all registered configurator services before attempting to register the skins from trinidad-skins.xml that it will re-read now.
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>
>