jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting" <jukka.zitt...@gmail.com>
Subject Re: remove JackrabbitRepository.shutdown()
Date Wed, 16 Apr 2008 13:34:03 GMT

On Wed, Apr 16, 2008 at 4:21 PM, Thomas Mueller
<thomas.tom.mueller@gmail.com> wrote:
>  I think we agree that we disagree.

I think there's certainly a road to consensus here, so let's keep going.

>  For Jukka Jackrabbit is a server, and the embedded use case (Model 1)
>  use case is completely unimportant.

:-) Don't put words into my mouth. IMHO we should be targeting server
deployments as the default model for Jackrabbit (all the easy
deployment, nice browser interface, etc. stuff planned for 1.5 is
explicitly related to server deployments), but there's no reason why
we can't keep the embedded deployment case around as well.

>  > Why not use TransientRepository?
>  That's probably the best solution so far. I'm not sure if that works
>  however. Some problems (which may be solvable):
>  - It cannot be used for remote repositories (can it?)

Sure it can:

    Repository repository = new TransientRepository();
    RemoteAdapterFactory factory = new ServerAdapterFactory();
    RemoteRepository remote = factory.getRemoteRepository(repository);
    Naming.bind("//localhost/jackrabbit", remote);

>  - The repository is closed (shut down) if the first login fails,
>  unlike other repositories

Is that a problem? If there's no session open, does the repository be up?

>  - It doesn't solve the Javadoc problem (the class has public methods
>  that should not be called)

Why is this a problem? We can improve the documentation if needed.

>  - It's still a class not an interface

JSR 283 is specifying an implementation-independent mechanism for
constructing a Repository instance. We can implement that for
TransientRepository to have an implementation-independent way of
starting (and stopping) a Jackrabbit repository.

>  - No way to force shutdown (unlike with
>  JackrabbitSession.shutdown(Session adminSession))

Just close all open sessions.


Jukka Zitting

View raw message