Hi,

On Wed, Apr 16, 2008 at 11:24 AM, Thomas Mueller
<[EMAIL PROTECTED]> wrote:
>  A) I think that when using libraries, programming against interfaces
>  is better than programming against fixed implementation classes.

Sure, but Jackrabbit is a server not a library. Sure, you can use
Jackrabbit as an embedded repository like you'd use Derby or hsqldb as
an embedded database, but the standard deployment is already
jackrabbit-webapp and IMHO our goal for Jackrabbit should be to make
it even more like a standalone server like PostgreSQL, MySQL, or
Oracle in the database world.

>  B) The "security" argument is invalid. Isn't it strange to remove the
>  interface JackrabbitRepository because "shutdown" is "not save", but a
>  Model 1 application has to call "shutdown" to close the repository?

Model 2 and 3 clients should not be able shutdown the repository, as
the repository lifecycle is managed by the server. And since all model
1 applications in any case have a direct Jackrabbit dependency, I
don't see why we couldn't expect them to use the direct
RepositoryImpl.shutdown() method.

>  D) How about other implementations (RMI, CRX)? If there is no
>  interface, things will get complicated. If there is no interface, an
>  application needs to have three ways to shutdown a repository.
>  Wouldn't it be cool to only have one way?

RMI clients should never shutdown the repository. CRX has it's own
repository lifecycle.

>  E) And again, JCRLog is impossible.

Why is that? A client should never call shutdown in the first place,
so why would JCRLog need to cover that?

BR,

Jukka Zitting

Reply via email to