On Thu, Sep 3, 2009 at 4:43 PM, Thomas Müller<[email protected]> wrote:
>> Think of the complexity of controlling the lifecycle of Derby that
>> uses the DriverManager API in JDBC to startup and shutdown the
>> database.
>
> Other databases provide betters ways. For HSQLDB and H2, you close the
> database by executing the SQL statement SHUTDOWN. This doesn't even
> require any new Java API. H2 by default closes the database when the
> last connection is closed (like TransientRepository), which is not
> always what you want, but OK. There is also a mechanism to specify a
> 'close delay'.

JCR is very much like a database. The jackrabbit repository host is
much like a embed database, and once it's running, it will act as a db
server for remote client. The life cycle could be managed as database.

1. For repository host
The shutdown method is already exist at least from 1.5.6 at
org.apache.jackrabbit.api.JackrabbitRepository.shutdown(). We just
need another method in JackrabbitRepository to be able to explicit
start up a the repository. For TransientRepository, we just need
expose the exist method startRepository as startup.

2. For remote client
I don't think it's necessary to expose the lifecycle management to
remote client, compare with database, a client is not suppose to
startup/shutdown db server. Client shouldn't even depends on
Jackrabbit API, such as developer normally only deal jdbc instead of
vendor jdbc api.

-Guo

Reply via email to