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