This is an automated email from the ASF dual-hosted git repository.
ddekany pushed a change to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git.
from e11170a Very basic (incomplete) support for TemplateNullModel, and
the null literal in the template language. This change also means that reading
null loop variables will never fall back to higher scopes anymore.
new ffd4a5f ClassIntrospector related cleanups, mostly from ported from
2.3
new cbb4425 Forward ported from 2.3-gae: 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:
.../core/model/impl/DefaultObjectWrapperDesc.java | 2 +-
.../core/model/impl/DefaultObjectWrapperInc.java | 2 +-
...DefaultObjectWrapperMemberAccessPolicyTest.java | 403 +++++++++++++++++++++
.../impl/DefaultObjectWrapperSingletonsTest.java | 20 +-
.../core/model/impl/DefaultObjectWrapperTest.java | 2 +-
.../impl/Java7MembersOnlyDefaultObjectWrapper.java | 2 +-
.../SimpleMapAndCollectionObjectWrapper.java | 2 +-
.../core/model/impl/ClassIntrospector.java | 240 ++++++++----
...escriptor.java => ClassMemberAccessPolicy.java} | 25 +-
...Methods.java => DefaultMemberAccessPolicy.java} | 64 +++-
.../core/model/impl/DefaultObjectWrapper.java | 67 ++--
.../{MethodSorter.java => MemberAccessPolicy.java} | 18 +-
.../core/model/impl/RestrictedObjectWrapper.java | 6 +-
.../freemarker/core/model/impl/StaticModel.java | 4 +-
14 files changed, 690 insertions(+), 167 deletions(-)
create mode 100644
freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperMemberAccessPolicyTest.java
copy
freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/{FastPropertyDescriptor.java
=> ClassMemberAccessPolicy.java} (58%)
rename
freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/{UnsafeMethods.java
=> DefaultMemberAccessPolicy.java} (62%)
copy
freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/{MethodSorter.java
=> MemberAccessPolicy.java} (54%)