You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2010/03/12 06:23:27 UTC

[jira] Updated: (TAP5-1013) Live class reloading for service implementations

     [ https://issues.apache.org/jira/browse/TAP5-1013?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1013:
---------------------------------------

    Description: 
It should be possible to create a class loader for (each) service implementation that can reload the service when its underlying class changes.

Once could imagine this as a special proxy; possibly this would require a particular service scope ("reloadable").

Periodically, a check could occur to let the proxies see if the underlying service implementation class file has changed and, if so, create a new class loader to load that specific class, much as tapestry-core does with component.

This would involve moving some number of services from tapestry-core to tapestry-ioc, and there are implications related to some public services.

I think it would be too much to support reloadable modules, just service implementations.  Therefore, services that are constructed via a builder method would not be reloadable.


  was:
It should be possible to create a class loader for (each) service implementation that can reload the service when its underlying class changes.

Once could imagine this as a special proxy; possibly this would require a particular service scope ("reloadable").

Periodically, a check could occur to let the proxies see if the underlying service implementation class file has changed and, if so, create a new class loader to load that specific class, much as tapestry-core does with component.

This would involve moving some number of services from tapestry-core to tapestry-ioc, and there are implications related to some public services.

I think it would be too much to support reloadable modules, just service implementations.  Therefore, services that are constructed via a builder method would not be reloadable.

However, some methods of ObjectLocator (such as autoproxy()) should be able to hot reload the underlying class as well.

     Issue Type: New Feature  (was: Bug)

As implemented is very specific, and limited to the default service scope.


> Live class reloading for service implementations
> ------------------------------------------------
>
>                 Key: TAP5-1013
>                 URL: https://issues.apache.org/jira/browse/TAP5-1013
>             Project: Tapestry 5
>          Issue Type: New Feature
>          Components: tapestry-ioc
>    Affects Versions: 5.0.19
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>
> It should be possible to create a class loader for (each) service implementation that can reload the service when its underlying class changes.
> Once could imagine this as a special proxy; possibly this would require a particular service scope ("reloadable").
> Periodically, a check could occur to let the proxies see if the underlying service implementation class file has changed and, if so, create a new class loader to load that specific class, much as tapestry-core does with component.
> This would involve moving some number of services from tapestry-core to tapestry-ioc, and there are implications related to some public services.
> I think it would be too much to support reloadable modules, just service implementations.  Therefore, services that are constructed via a builder method would not be reloadable.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.