This is an automated email from the ASF dual-hosted git repository.
ddekany pushed a change to branch 2.3-gae
in repository https://gitbox.apache.org/repos/asf/freemarker.git.
from 5c98cf4 Merge pull request #61 from quaff/2.3-gae
new 950351a Some cleanup in ClassIntrospector and BeansWrapper code
new 1ea65e8 Added freemarker.ext.beans.MemberAccessPolicy interface, and
the memberAccessPolicy property to BeansWrapper, and subclasses like
DefaultObjectWrapper. This allows users to implement their own program logic to
decide what members of classes will be exposed to the templates. The legacy
"unsafe methods" mechanism also builds on the same now, and by setting a custom
MemberAccessPolicy you completely replace that.
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
src/main/java/freemarker/ext/beans/BeanModel.java | 2 +-
.../java/freemarker/ext/beans/BeansModelCache.java | 6 +-
.../java/freemarker/ext/beans/BeansWrapper.java | 12 +-
.../ext/beans/BeansWrapperConfiguration.java | 10 +-
.../freemarker/ext/beans/ClassIntrospector.java | 144 +++++---
.../ext/beans/ClassIntrospectorBuilder.java | 74 ++--
...escriptor.java => ClassMemberAccessPolicy.java} | 34 +-
...Methods.java => DefaultMemberAccessPolicy.java} | 75 +++-
...ChangeNotifier.java => MemberAccessPolicy.java} | 16 +-
.../java/freemarker/ext/beans/StaticModel.java | 4 +-
.../java/freemarker/template/Configuration.java | 5 +-
.../java/freemarker/template/_TemplateAPI.java | 1 +
src/manual/en_US/book.xml | 10 +
...DefaultObjectWrapperMemberAccessPolicyTest.java | 409 +++++++++++++++++++++
14 files changed, 666 insertions(+), 136 deletions(-)
copy src/main/java/freemarker/ext/beans/{FastPropertyDescriptor.java =>
ClassMemberAccessPolicy.java} (56%)
rename src/main/java/freemarker/ext/beans/{UnsafeMethods.java =>
DefaultMemberAccessPolicy.java} (56%)
copy src/main/java/freemarker/ext/beans/{ClassChangeNotifier.java =>
MemberAccessPolicy.java} (53%)
create mode 100644
src/test/java/freemarker/ext/beans/DefaultObjectWrapperMemberAccessPolicyTest.java