On Tue, Apr 15, 2008 at 6:14 PM, Thomas Mueller <[EMAIL PROTECTED]> wrote: > > how would you do it with a relational database using JDBC? > > Connection conn = DriverManager.getConnection(...); > if (url.startsWith("jdbc:hsqldb:")) { > conn.createStatement().execute("SHUTDOWN"); > } > conn.close(); > ... backup ... > Connection conn = DriverManager.getConnection(...); > ... > > There is no vendor specific import. The 'SHUTDOWN' statement is vendor > specific, but uses the standard JDBC API. Using a JDBC wrapper is not > a problem.
If you really needed that, you could always implement repository.login("SHUTDOWN")... But just like you can't do that to an Oracle database, I don't think it makes that much sense for Jackrabbit. > > I don't think the above use case is something that really needs to be > > vendor-independent, i.e. how often a generic application needs to do > > that? > > Do you mean how often does an application need to backup data? It > depends on the use case. Much more specifically: needs to shutdown a repository to backup the underlying storage. If you need to do that, you're in any case tied to implementation-specific functionality as already the "backup underlying storage" requires implementation-specific knowledge. So IMHO there's not much benefit for the "shutdown the repository" part to be independent of the underlying implementation. > Another use case: > http://jackrabbit.apache.org/deployment-models.html > Model 1: The (Web-) Application Bundle > "The individual repository instances are started and stopped with > their containing applications" > How should a standalone application close a repository before the > application ends, without importing Jackrabbit specific classes? > Hopefully this is defined in JCR 2.0. In model 1 you're embedding the repository and thus you'd have a direct dependency to jackrabbit-core and use RepositoryImpl.create() to start the repository up. Using RepositoryImpl.shutdown() to shut it down doesn't make things any more complicated. BR, Jukka Zitting