namespaces are fully supported by jackrabbit since 1.0. and the
registration works exactly as specified in jsr170 (which is a bit
troublesome).

in your application you probably have a 'getRepositorySession' call,
and there i would setup/check the namespaces for your application, eg:

1. check if your namespace is already registered
2. if not, do so.
3. setup the namespace mapping for your session and application.

example:

   try {
       s.getNamespaceURI("http://your.com/ns/1";);
   } catch (RepositoryException e) {
       // register namespace
       s.getWorkspace().getNamespaceRegistry().registerNamespace(
           "myapp", "http://your.com/ns/1";);
   }
   s.setNamespacePrefix("myapp", "http://your.com/ns/1";);
   [....]
   s.getRootNode().getNode("myapp:someNode");

regards, toby


On 2/26/07, Wolf Benz <[EMAIL PROTECTED]> wrote:
Hi List,

I have 2 questions regarding namespaces:

1/ What is the meaning/effect of these variables:
forceNamespacesRegistration
keepNamespaces

The Javadoc seems to be left blanc for these...

&  I keep getting errors w.r.t. namespaces:
I try to register a namespace, but I got and error when running the
application a second time (name space already exists)
+ when forceNamespacesRegistration is true I got 'unregistering
namespaces is not supported.'

--> Does this mean even in JR 1.2.2 namespaces are not fully
supported? (...)
(hope it will probabely be smth else - NS are such key piece of a JCR
this seems unlikely)
Do these vars actually do what they are meant to do?

2/ Most importantly:
How does one get to register the custom nodes that go with these
namespaces?
Does it suffice to place the CND-file in the /respository/namepsaces
directory, or should it be in the specific WS directory /workspaces/
myWS/myProjectNamespaces/ (bot defined in the repository.xml)

or....?
Or do they really have to be digged up from where ever you put the
cnd file and are these 2 locations mere preferred locations? (like
the code example on the JR site)
If so, I can't image that this needs to be done at every single
getSession - what's the best place to do it once? I'm having a "best
place-when best" problem with this. Apparently a NS is registered
from the WS, which you get from the Session. I find this strange. I
rather see it as tied to a Repository. So I would have expected it in
the repository configuration.

Sorry or all the questions... (I hope everyone has these issues)
Wolf

Ps2 Is this sort of stuff addressed in JSR-283 as well?


--
-----------------------------------------< [EMAIL PROTECTED] >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---

Reply via email to