You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2011/09/23 22:49:26 UTC

[jira] [Created] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Tapestry could create non-singleton services more efficiently
-------------------------------------------------------------

                 Key: TAP5-1665
                 URL: https://issues.apache.org/jira/browse/TAP5-1665
             Project: Tapestry 5
          Issue Type: Improvement
          Components: tapestry-ioc
    Affects Versions: 5.3, 5.2
            Reporter: Howard M. Lewis Ship


For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Closed] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-1665.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.3

Tapestry now generates a reusable "plan" for invoking constructors or service builder methods, and will retain that plan for scopes other than the default "singleton" scope. This skips a large amount of repeated analysis of fields and public methods and constructor/method arguments.

It does introduce a tiny change in semantics, in that an @Autobuild parameter to a service will be cached and reused, rather than recreated on each construction.

> Tapestry could create non-singleton services more efficiently
> -------------------------------------------------------------
>
>                 Key: TAP5-1665
>                 URL: https://issues.apache.org/jira/browse/TAP5-1665
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.3, 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>              Labels: performance
>             Fix For: 5.3
>
>
> For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship reassigned TAP5-1665:
------------------------------------------

    Assignee: Howard M. Lewis Ship

> Tapestry could create non-singleton services more efficiently
> -------------------------------------------------------------
>
>                 Key: TAP5-1665
>                 URL: https://issues.apache.org/jira/browse/TAP5-1665
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.3, 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>              Labels: performance
>
> For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship reassigned TAP5-1665:
------------------------------------------

    Assignee: Howard M. Lewis Ship

> Tapestry could create non-singleton services more efficiently
> -------------------------------------------------------------
>
>                 Key: TAP5-1665
>                 URL: https://issues.apache.org/jira/browse/TAP5-1665
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.3, 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>              Labels: performance
>
> For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Closed] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-1665.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.3

Tapestry now generates a reusable "plan" for invoking constructors or service builder methods, and will retain that plan for scopes other than the default "singleton" scope. This skips a large amount of repeated analysis of fields and public methods and constructor/method arguments.

It does introduce a tiny change in semantics, in that an @Autobuild parameter to a service will be cached and reused, rather than recreated on each construction.

> Tapestry could create non-singleton services more efficiently
> -------------------------------------------------------------
>
>                 Key: TAP5-1665
>                 URL: https://issues.apache.org/jira/browse/TAP5-1665
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.3, 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>              Labels: performance
>             Fix For: 5.3
>
>
> For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13113897#comment-13113897 ] 

Hudson commented on TAP5-1665:
------------------------------

Integrated in tapestry-trunk-freestyle #539 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/539/])
    TAP5-1665: Tapestry could create non-singleton services more efficiently
TAP5-1665: Tapestry could create non-singleton services more efficiently

hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1175104
Files : 
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractMethodInvokingInstrumenter.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/IOCMessages.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBuilderMethodInvoker.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InternalUtils.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/MethodInvoker.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/resources/org/apache/tapestry5/ioc/internal/IOCStrings.properties
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/ServiceBuilderMethodInvokerTest.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/ServiceDecoratorImplTest.java

hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1175103
Files : 
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ConstructorServiceCreator.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/IOCMessages.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/ConstructionPlan.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/ConstructorInvoker.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InitializationPlan.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InternalUtils.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/LoggingInvokableWrapper.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/resources/org/apache/tapestry5/ioc/internal/IOCStrings.properties
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/DefaultModuleDefImplTest.java


> Tapestry could create non-singleton services more efficiently
> -------------------------------------------------------------
>
>                 Key: TAP5-1665
>                 URL: https://issues.apache.org/jira/browse/TAP5-1665
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.3, 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>              Labels: performance
>             Fix For: 5.3
>
>
> For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (TAP5-1665) Tapestry could create non-singleton services more efficiently

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13113897#comment-13113897 ] 

Hudson commented on TAP5-1665:
------------------------------

Integrated in tapestry-trunk-freestyle #539 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/539/])
    TAP5-1665: Tapestry could create non-singleton services more efficiently
TAP5-1665: Tapestry could create non-singleton services more efficiently

hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1175104
Files : 
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractMethodInvokingInstrumenter.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/IOCMessages.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBuilderMethodInvoker.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InternalUtils.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/MethodInvoker.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/resources/org/apache/tapestry5/ioc/internal/IOCStrings.properties
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/ServiceBuilderMethodInvokerTest.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/ServiceDecoratorImplTest.java

hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1175103
Files : 
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ConstructorServiceCreator.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/IOCMessages.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/ConstructionPlan.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/ConstructorInvoker.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InitializationPlan.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InternalUtils.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/LoggingInvokableWrapper.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/resources/org/apache/tapestry5/ioc/internal/IOCStrings.properties
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/DefaultModuleDefImplTest.java


> Tapestry could create non-singleton services more efficiently
> -------------------------------------------------------------
>
>                 Key: TAP5-1665
>                 URL: https://issues.apache.org/jira/browse/TAP5-1665
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.3, 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>              Labels: performance
>             Fix For: 5.3
>
>
> For services that may be created again on each request, Tapestry does a lot of extra work to analyze the class, constructor and fields. It should be able to roll up all this information into a repeatable "plan" that can simply be re-executed on each subsequent instance creation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira