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
Priority: Minor
Fix For: 1.4-M4, 1.5-M1
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.