You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2014/01/25 15:08:41 UTC

[jira] [Commented] (ISIS-651) Modifications to enable JRebel support

    [ https://issues.apache.org/jira/browse/ISIS-651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13881901#comment-13881901 ] 

Dan Haywood commented on ISIS-651:
----------------------------------

A plugin has now been implemented, see https://github.com/danhaywood/isis-jrebel-plugin.

> Modifications to enable JRebel support
> --------------------------------------
>
>                 Key: ISIS-651
>                 URL: https://issues.apache.org/jira/browse/ISIS-651
>             Project: Isis
>          Issue Type: Improvement
>          Components: Core, Objectstore: JDO
>    Affects Versions: objectstore-jdo-1.3.0, core-1.3.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>            Priority: Minor
>             Fix For: objectstore-jdo-1.4.0, core-1.4.0
>
>
> Make JDO PersistenceManagerFactory accessible so can be interacted with outside of Isis runtime
> Invalidate Isis spec cache by way of class (not just by object).
> ~~~
> need to be able to do similar with the DN metadata:
> http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1104
> Assuming that there's auto-enhancement within the IDE, this means that JRebel picks up each class twice: once for the unenhanced class, then almost immediately for the enhanced class.  Therefore, I think that all that may be required is to remove the ClassMetaData whenever an unenhanced class is reloaded DN's will lazily recreate metadata as required.
> An enhancement might be to do the enhancement within the JRebel plugin (and not in the IDE).  This would require the enhancement is done in a separate classloader; it (obviously!) isn't allowed to reference the java.lang.Class being loaded within the plugin itself.  As enhancement does cause this to occur, it must be namespaced off to a separate classloader.
> resources:
> - http://www.datanucleus.org/servlet/wiki/pages/viewpage.action?pageId=6619188  (Metadata Generation, programmatic running of Enhancement)
> - http://markmail.org/message/xn6fowrxqeucac26  (useful forum messages hinting on the classloader stuff)
> - http://www.datanucleus.org/products/accessplatform/jpa/enhancer.html#api (background notes)



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)