jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frédéric Esnault <f...@legisway.com>
Subject RE: NodeTypeRegistry question
Date Fri, 25 May 2007 06:17:28 GMT
You're problem comes from the fact that you're working with RMI. In this case, Workspace.getNodeTypeManager()
doesn't return a NodeTypeManagerImpl, but a ClientNodeTypeManager.

The ClientNodeTypeManager is kind of a proxy to the remote NodeTypeManager, and gives access
to the remote manager through the NodeTypeManager interface (which only proposes getters,
no registration or reregistration methods).

As far as I know, it seems impossible to access the NodeTypeManagerImpl API with it. NodeTypeManagerImpl
is implementing the JackrabbitNodeTypeManager interface, which defines the register and reregister
methods, but :
- ClientNodeTypeManager implements NodeTypeManager;
- ClientNodeTypeManager holds a RemoteNodeTypeManager, the reference to the remote manager,
but it also implements the NodeTypeManager interface.

All this to say there seems to be no way to get access to the JackrabbitNodeTypeManager interface
through the ClientNodeTypeManager.

So in this case, RMI is causing the trouble.

Is RMI mandatory for you? Couldn't you try to work with web services or messaging?

Frédéric Esnault - Ingénieur R&D
60 boulevard de la mission Marchand
92400 Courbevoie La Défense

-----Message d'origine-----
De : Stefano Minella [mailto:stefanominella@gmail.com] 
Envoyé : jeudi 24 mai 2007 23:13
À : users@jackrabbit.apache.org
Objet : NodeTypeRegistry question

Hi all
I need to register a new nodetype, having all the properties, and not
the CND file.
So I try to do this steps to retrieve NodeTypeRegistry (and then use
it with a NodeTypeDef class):

NodeTypeManagerImpl ntmgr = (NodeTypeManagerImpl)ws.getNodeTypeManager();
NodeTypeRegistry nodeTypeRegistry = ntmgr.getNodeTypeRegistry();

My problem is that at run-time the result of ws.getNodeTypeManager()
is a class named ClientNodeTypeManager instead of NodeTypeManagerImpl.
But in ClientNodeTypeManager class I haven't the method to retrieve
the NodeTypeRegistry.

So... how can I do to register a nodetype?

And may be a problem that the application run on a Model 3 enviroment
(I use with the rmi to interface with Jackrabbit)?

Thank you

View raw message