[
https://issues.apache.org/jira/browse/WW-4174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lukasz Lenart reassigned WW-4174:
---------------------------------
Assignee: Lukasz Lenart
> Make OgnlValueStack and OgnlValueStackFactory More Extensible
> -------------------------------------------------------------
>
> Key: WW-4174
> URL: https://issues.apache.org/jira/browse/WW-4174
> Project: Struts 2
> Issue Type: Improvement
> Components: Value Stack
> Affects Versions: 2.3.15.1
> Reporter: Kevin Conroy
> Assignee: Lukasz Lenart
> Fix For: 2.5.next
>
>
> I'm not trying to reopen XW-613 and have taken the advice from the mailing
> list seriously about not just requesting changes to the default behavior or
> log levels.
> http://mail-archives.apache.org/mod_mbox/struts-user/200907.mbox/%[email protected]%3E
> Instead, I'd like to propose changing some private methods in OgnlValueStack
> to be protected so that developers can more easily extend OgnlValueStack to
> implement their desired logging/warning/exception behavior for their
> application.
> I'd like to propose that the following methods in OgnlValueStack (currently
> private in scope) should be changed to protected:
> {code}
> protected void handleRuntimeException(String expr, Object value, boolean
> throwExceptionOnFailure, RuntimeException re)
> protected void handleOgnlException(String expr, Object value, boolean
> throwExceptionOnFailure, OgnlException e)
> protected void setupExceptionOnFailure(boolean throwExceptionOnFailure)
> protected Object handleOtherException(String expr, boolean
> throwExceptionOnFailure, Exception e)
> protected Object handleOgnlException(String expr, boolean
> throwExceptionOnFailure, OgnlException e)
> protected boolean shouldLogNoSuchPropertyWarning(OgnlException e)
> protected Object findInContext(String name)
> {code}
> Additionally, to enable the OgnlValueStackFactory to be easily extended to
> return any overridden OgnlValueStack implementations, the currently private
> data members should be given protected getters:
> {code}
> protected XWorkConverter getXworkConverter()
> {
> return xworkConverter;
> }
> protected CompoundRootAccessor getCompoundRootAccessor()
> {
> return compoundRootAccessor;
> }
> protected TextProvider getTextProvider()
> {
> return textProvider;
> }
> protected Container getContainer()
> {
> return container;
> }
> protected boolean isAllowStaticMethodAccess()
> {
> return allowStaticMethodAccess;
> }
> {code}
> This would allow developers like myself to more easily extend and override
> behavior to better fit our own desired notification levels. For example,
> these changes would allow me to set it up to provide info level warnings in
> the log file while suppressing the exception that gets thrown.
> Protected level scope ensures that my custom extensions can more easily
> inherit bug fixes and behavior changes from future versions.
> Thanks!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)