You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Claus Köll (Created JIRA)" <ji...@apache.org> on 2012/01/12 09:43:39 UTC

[jira] [Created] (JCR-3206) JSR-283 support for RMI

JSR-283 support for RMI
-----------------------

                 Key: JCR-3206
                 URL: https://issues.apache.org/jira/browse/JCR-3206
             Project: Jackrabbit Content Repository
          Issue Type: New Feature
          Components: jackrabbit-jcr-rmi
    Affects Versions: 2.3
            Reporter: Claus Köll


We have the JCRRMI-26 Issue for the missing JSR-283 support.
As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
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

       

[jira] [Updated] (JCR-3206) JSR-283 support for RMI

Posted by "Lars Michele (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Michele updated JCR-3206:
------------------------------

    Attachment: jackrabbit-jcr-rmi-ntm-ac-ej.patch

This patch contains lots of changes:
NodeTypeManagement
AccessControlManagement
EventJournal

Serverside caching for mapping remote stubs to jcr objects and vice versa.
Clientside caching for mapping client objects to remote stubs  and vice versa.

                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (JCR-3206) JSR-283 support for RMI

Posted by "Lars Michele (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Michele updated JCR-3206:
------------------------------

    Attachment:     (was: rmi-cache.patch)
    
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch, rmi-cache-updated.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (JCR-3206) JSR-283 support for RMI

Posted by "Lars Michele (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Michele updated JCR-3206:
------------------------------

    Attachment: rmi-eventjournal.patch

This patch contains the rmi implementation for the event journal. For Performance reasons I also changed the implementation from RemoteEvent to a SerializableEvent. (As repositories can have lots of events, the RMI registry would otherwise fill up with a lot of event stubs)
The patch is created with HG and works on the changes from rmi-cache-updated.patch
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch, rmi-cache-updated.patch, rmi-eventjournal.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (JCR-3206) JSR-283 support for RMI

Posted by "Lars Michele (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Michele updated JCR-3206:
------------------------------

    Attachment: rmi-cache-updated.patch

Missed a dependency.
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch, rmi-cache-updated.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (JCR-3206) JSR-283 support for RMI

Posted by "Claus Köll (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460392#comment-13460392 ] 

Claus Köll commented on JCR-3206:
---------------------------------

Thanks for the work .. i will have a look at it soon.
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (JCR-3206) JSR-283 support for RMI

Posted by "Lars Michele (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13474489#comment-13474489 ] 

Lars Michele commented on JCR-3206:
-----------------------------------

Hi Claus,
I doubt, that I could split the patch into smaller patches. The problem lies in the caching I added to the LocalAdapterFactory/ClientAdapterFactory and RemoteAdapterFactory/ServerAdapterFactory. The other changes rely on this essential part. The current implementation always returns a new RemoteStub for every access to a remote method. This means, one can execute getSession() on a node and always create a new ServerSession as adapter which gets registered in the RMI registry. Then a ClientSession is created for this "new" RemoteStub.
The cache on the server allows the reuse of already available remote stubs, so only the first access creates a remote stub. On the client side a client object is only created, if it is not already present in the cache. One big trick is the use of ReferenceIdentityMap for caching Jackrabbit objects, because not all of them implement a meanigful hashcode method. On the other hand, mapping remote stubs to Jackrabbit objects must be equals based to get the right results for remote stubs. If this rudimentary cache implementation is ok, the rest of the changes is not really a big deal. Just interfaces, server adapters for the jackrabbit objects, client adapters for the remote stubs.
I hope this little description helps, but if this is not enough, I could call you and we could walk through the changes together :-)
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (JCR-3206) JSR-283 support for RMI

Posted by "Claus Köll (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13473853#comment-13473853 ] 

Claus Köll commented on JCR-3206:
---------------------------------

Hi Lars,
In your patch there are a lot of changes only in comments so its hard to see whats really going on in the changes.
Maybe you can add more small patches. It would then be easier to handle it
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (JCR-3206) JSR-283 support for RMI

Posted by "Claus Köll (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13490566#comment-13490566 ] 

Claus Köll commented on JCR-3206:
---------------------------------

Hi Lars,

>The current implementation always returns a new RemoteStub for every access to a remote method. 
>This means, one can execute getSession() on a node and always create a new ServerSession as adapter which gets registered in the RMI registry. 
I can't really follow you here. On a ClientNode getSession() returns always the ClientSession without any server roundtrip.

On which objects/level should your cache work ? Lets assume following test ...
Node x = session.getNodeByUUID();
Node y = session.getNodeByUUID();
Your cache will not work because on the server side the 2 "same" Nodes have different hashCode's
The remoteCache uses a ReferenceIdentityMap which calculates the hashCode of jcr objects with System.identityHashCode.
This will not work for many jcr objects.

In the current impl some objects will be already cached with member variables like workspace in ClientSession or
lockManger in ClientWorkSpace.

I think we should define what objects we use with your cache.
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch, rmi-cache-updated.patch, rmi-eventjournal.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (JCR-3206) JSR-283 support for RMI

Posted by "Claus Köll (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13442283#comment-13442283 ] 

Claus Köll commented on JCR-3206:
---------------------------------

Patch committed in revision 1377571. Thanks for the Patch great work !
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (JCR-3206) JSR-283 support for RMI

Posted by "Lars Michele (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-3206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Michele updated JCR-3206:
------------------------------

    Attachment: rmi-cache.patch

After rethinking, how I could split up the work, I found a way :-)
Here comes the caching part which for now reduces some object creation overhead and the the registering of a lot of stubs in the RMI registry.
                
> JSR-283 support for RMI
> -----------------------
>
>                 Key: JCR-3206
>                 URL: https://issues.apache.org/jira/browse/JCR-3206
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-rmi
>    Affects Versions: 2.3
>            Reporter: Claus Köll
>         Attachments: jackrabbit.diff, jackrabbit-jcr-rmi-ntm-ac-ej.patch, rmi-cache.patch
>
>
> We have the JCRRMI-26 Issue for the missing JSR-283 support.
> As we do no more use the Jira Project JCRRMI i would like to create a new Issue for that feature request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira