@Override public Future<Boolean> shutdownRepository(String repositoryName) throws RepositoryException { return ENGINE.shutdownRepository(repositoryName); }
@Override public Future<Boolean> shutdownRepository(String repositoryName) throws RepositoryException { return ENGINE.shutdownRepository(repositoryName); }
@SuppressWarnings( "synthetic-access" ) @Override public void objectRemoved( NamingEvent evt ) { Object oldObject = evt.getOldBinding().getObject(); if (!(oldObject instanceof JcrRepository)) return; JcrRepository repository = (JcrRepository)oldObject; String repoName = repository.getName(); try { ENGINE.shutdownRepository(repoName).get(); } catch (NoSuchRepositoryException e) { // Ignore this ... } catch (InterruptedException ie) { LOG.error(ie, JcrI18n.errorWhileShuttingDownRepositoryInJndi, repoName, jndiName); // Thread.interrupted(); } catch (ExecutionException e) { LOG.error(e.getCause(), JcrI18n.errorWhileShuttingDownRepositoryInJndi, repoName, jndiName); } finally { // Try to shutdown the repository only if there are no more running repositories. // IOW, shutdown but do not force shutdown of running repositories ... ENGINE.shutdown(false); // no need to block on the futured returned by 'shutdown(boolean)' } }
@SuppressWarnings( "synthetic-access" ) @Override public void objectRemoved( NamingEvent evt ) { Object oldObject = evt.getOldBinding().getObject(); if (!(oldObject instanceof JcrRepository)) return; JcrRepository repository = (JcrRepository)oldObject; String repoName = repository.getName(); try { ENGINE.shutdownRepository(repoName).get(); } catch (NoSuchRepositoryException e) { // Ignore this ... } catch (InterruptedException ie) { LOG.error(ie, JcrI18n.errorWhileShuttingDownRepositoryInJndi, repoName, jndiName); // Thread.interrupted(); } catch (ExecutionException e) { LOG.error(e.getCause(), JcrI18n.errorWhileShuttingDownRepositoryInJndi, repoName, jndiName); } finally { // Try to shutdown the repository only if there are no more running repositories. // IOW, shutdown but do not force shutdown of running repositories ... ENGINE.shutdown(false); // no need to block on the futured returned by 'shutdown(boolean)' } }
@Test public void shouldNotAutomaticallyStartDeployedRepositories() throws Exception { engine.start(); JcrRepository repository = engine.deploy(config); String name = repository.getName(); assertThat(engine.getRepositoryState(name), is(State.NOT_RUNNING)); engine.startRepository(name).get(); // blocks assertThat(engine.getRepositoryState(name), is(State.RUNNING)); engine.shutdownRepository(name).get(); // blocks assertThat(engine.getRepositoryState(name), is(State.NOT_RUNNING)); }
@Test public void shouldAutomaticallyStartRepositoryUponLogin() throws Exception { engine.start(); JcrRepository repository = engine.deploy(config); String name = repository.getName(); assertThat(engine.getRepositoryState(name), is(State.NOT_RUNNING)); assertThat(repository.getState(), is(State.NOT_RUNNING)); for (int i = 0; i != 4; ++i) { javax.jcr.Session session = repository.login(); assertThat(repository.getState(), is(State.RUNNING)); session.logout(); } assertThat(engine.getRepositoryState(name), is(State.RUNNING)); engine.shutdownRepository(name).get(); // blocks assertThat(engine.getRepositoryState(name), is(State.NOT_RUNNING)); }
engine.shutdownRepository(name).get(); // blocks assertThat(engine.getRepositoryState(name), is(State.NOT_RUNNING));
engine.shutdownRepository(name).get(); // blocks assertThat(engine.getRepositoryState(name), is(State.NOT_RUNNING));