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

Igor Vaynberg updated WICKET-1847:
----------------------------------

    Fix Version/s:     (was: 1.4-M4)

1.5 only

> Custom, user defined, configuration types plus configuration type change 
> during runtime
> ---------------------------------------------------------------------------------------
>
>                 Key: WICKET-1847
>                 URL: https://issues.apache.org/jira/browse/WICKET-1847
>             Project: Wicket
>          Issue Type: New Feature
>          Components: wicket
>            Reporter: Bruno Borges
>            Assignee: Igor Vaynberg
>             Fix For: 1.5-M1
>
>         Attachments: patch.diff
>
>
> Currently, there's only two configuration types (DEVELOPMENT, DEPLOYMENT) and 
> both are hardcoded. Because Application.configure() is final, there's no 
> (easy) way to provide customized configurations and no out-of-box API to code 
> these.
> The idea is to give org.apache.wicket.Application a new method called 
> add(IApplicationConfiguration<? extends Application>) and from there, the 
> user can define custom configuration types.
> Wicket's default configuration types will still be there if the user do not 
> replace them (creating configurators with "deployment" or "development" as 
> the name, but still is possible to override).
> There will be also the possibility to change the configuration type easily 
> during runtime with setConfigurationType.
> The default configuration type will still be defined the current way (VM 
> parameter, Filter parameter)
> The configuration is now made during the initializeComponents() because of 
> procedural methods. Calling setConfigurationType(String) with the user 
> defined *hard-coded* getDefaultConfigurationType() during internalInit() 
> would throw an exception because the custom IApplicationConfigurator hasn't 
> been added yet (it is added during init() ... usually).
> This patch also avoids subsequent calls to initializeComponents(), throwing 
> an IllegalStateException. 
> * Issues with this patch
> - There are 6 references pointing to getConigurationType comparing the 
> returned value with Application.DEVELOPMENT to do certain things.
> - The method getConfigurationType() is now final (and of course, 
> implemented). People who wants to change the configuration type, should call 
> setConfigurationType(String). This will recall configure() method to 
> reconfigure the application (runtime configuration type change support)
> The patch does not break those references at all with current 
> implementations, as the two default configuration types still live in there, 
> but it would be better to turn those if conditions to some sort of settings.
> Also, the patch fixes WICKET-1317 for 1.4/1.5 as well.
> ** IMPORTANT NOTE **
> Because of some problem with Eclipse, the provided code formatter didn't work 
> well, so before applying the patch, format the code and confirm the 
> differences with trunk.

-- 
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