Hi,

On 3/14/07, Lubos and Alena Pochman <[EMAIL PROTECTED]> wrote:
I would be also interested in that. I would not mind doing it
programatically (if I know how 8-).
I read JSR-170 spec and jackrabbit website but could not find it, probably
did not look hard enough 8-).

Our documentation is currently quite lacking, so in many cases you
still need to resort to digging the list archives for the useful bits
of information. I hope we can change that sooner rather than later,
but for now you did exactly the right thing by asking the mailing
list... :-)

So, the best way to create and register new node types is to first
define them using the CND format (see
http://jackrabbit.apache.org/doc/nodetype/cnd.html) and then use the
custom JackrabbitNodeTypeManager API extension from the jackrabbit-api
library to register the new types.

In this case the new node type definition could be something like this:

   [myfile] > nt:file
   - RevisionLabel (STRING)

Once you have the CND file, you can use the JackrabbitNodeTypeManager
API extension like this to register the node type:

   import org.apache.jackrabbit.api.JackrabbitNodeTypeManager;

   Session session = ...;
   JackrabbitNodeTypeManager manager = (JackrabbitNodeTypeManager)
       session.getWorkspace().getNodeTypeManager();
   // only register the type if it does not yet exist
   if (!manager.hasNodeType("myfile")) {
       manager.registerNodeTypes(
           JackrabbitNodeTypeManager.TEXT_X_JCR_CND,
           <InputStream for reading your CND file>);
   }

Once you've done this, you can replace "nt:file" with "myfile" in your
original code, and the "RevisionLabel" property will no longer cause
trouble.

BR,

Jukka Zitting

Reply via email to