Hi Tobias,
Most importantly: thanks for taking the time to reply :-)
I have 2 remaining questions:

1/ It seems (to me, at least) unefficient to have to do this at every
time you get a session, no? (as this is code that is passed every time
you get a session) Is there a way to "init" a session once and for all
so that every next call to it can assume this work is done instead of
having to check every other time it is done?

2/ Why do you explicitely (again) do the
"s.setNamespacePrefix("myapp", "http://your.com/ns/1";);" as you not
only registered the NS, but also provide the NS (myapp) in your call
on the next line: "s.getRootNode().getNode("myapp:someNode");"
Is it necessary?

Thanks in advance,
Wolf

On 2/27/07, Tobias Bocanegra <[EMAIL PROTECTED]> wrote:
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