[ https://issues.apache.org/jira/browse/TAP5-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13175564#comment-13175564 ]
Hudson commented on TAP5-1801: ------------------------------ Integrated in tapestry-trunk-freestyle #648 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/648/]) TAP5-1801: Allow non-public fields in instrumented classes Update some tests, due to non-private fields being allowed now TAP5-1801: Allow non-public fields in instrumented classes Support field instrumentation on accesses from inner classes TAP5-1801: Allow non-public fields in instrumented classes Add a test for cross-class field access TAP5-1801: Allow non-public fields in instrumented classes Refactor how file instrumentations are stored in the PlasticClass and in the PlasticClassPool TAP5-1801: Allow non-public fields in instrumented classes Added most of the logic for tracking instrument methods for fields of classes TAP5-1801: Allow non-public fields in instrumented classes hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222792 Files : * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Datum.java * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ProtectedFields.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222790 Files : * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/ClassType.java * /tapestry/tapestry5/trunk/plastic/src/test/groovy/org/apache/tapestry5/plastic/FieldAccessTests.groovy * /tapestry/tapestry5/trunk/plastic/src/test/java/testinterfaces/ValueGetter.java * /tapestry/tapestry5/trunk/plastic/src/test/java/testsubjects/ProtectedField.java * /tapestry/tapestry5/trunk/plastic/src/test/java/testsubjects/ProtectedFieldCollaborator.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222789 Files : * /tapestry/tapestry5/trunk/plastic/src/test/groovy/org/apache/tapestry5/plastic/FieldAccessTests.groovy * /tapestry/tapestry5/trunk/plastic/src/test/java/testsubjects/ProtectedField.java * /tapestry/tapestry5/trunk/plastic/src/test/java/testsubjects/ProtectedFieldCollaborator.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222788 Files : * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/FieldInstrumentation.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/FieldInstrumentations.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222787 Files : * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222786 Files : * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java * /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java * /tapestry/tapestry5/trunk/plastic/src/test/groovy/org/apache/tapestry5/plastic/ObtainPlasticClass.groovy * /tapestry/tapestry5/trunk/plastic/src/test/java/testsubjects/NonPrivateInstanceField.java * /tapestry/tapestry5/trunk/plastic/src/test/java/testsubjects/PublicInstanceField.java > Component fields should not need to be private, merely non-public > ----------------------------------------------------------------- > > Key: TAP5-1801 > URL: https://issues.apache.org/jira/browse/TAP5-1801 > Project: Tapestry 5 > Issue Type: Improvement > Components: plastic, tapestry-core > Affects Versions: 5.4 > Reporter: Howard M. Lewis Ship > Assignee: Howard M. Lewis Ship > Labels: bytecode > Fix For: 5.4 > > > Currently, Plastic assets, early, that all instance fields are private. > Instead, it should check fields as transformations are applied to them, and > ensure that they are merely non-public. Access to the fields from other > classes (including inner classes) must be routed through access methods. > Inner classes will now need a limited set of transformations, to handle the > cases where a protected or package private field is directly accessed, in > which case, the appropriate accessor method will be used instead. > It seems possible that two transformed classes that each access the other's > non-public fields might cause an endless loop; if so, this should be > identified and reported. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira