[ 
https://issues.apache.org/jira/browse/WW-4174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15793060#comment-15793060
 ] 

Kevin Conroy commented on WW-4174:
----------------------------------

Thank you!

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

Reply via email to