You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Hudson (Commented) (JIRA)" <ji...@apache.org> on 2011/12/23 21:10:30 UTC
[jira] [Commented] (TAP5-1801) Component fields should not need to
be private, merely non-public
[ 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