@Override protected String createConnectionUrl( JcrRepository repository ) throws Exception { return LocalJcrDriver.JNDI_URL_PREFIX + "jcr/local?repositoryName=" + repository.getName(); } }
@Override public String getRepositoryName() { return repository().getName(); }
@Override public String getRepositoryName() { return repository().getName(); }
@Override public Set<String> getRepositoryNames() { checkRunning(); final Lock lock = this.lock.readLock(); try { lock.lock(); Set<String> names = new HashSet<String>(); for (JcrRepository repository : repositories.values()) { names.add(repository.getName()); } return names; } finally { lock.unlock(); } }
protected final void prepareToRestore() throws RepositoryException { logger.debug("Preparing to restore '{0}' repository; setting state to RESTORING", getName()); if (getState() == State.RESTORING) { throw new RepositoryException(JcrI18n.repositoryIsCurrentlyBeingRestored.text(getName())); } state.set(State.RESTORING); }
protected final void prepareToRestore() throws RepositoryException { logger.debug("Preparing to restore '{0}' repository; setting state to RESTORING", getName()); if (getState() == State.RESTORING) { throw new RepositoryException(JcrI18n.repositoryIsCurrentlyBeingRestored.text(getName())); } state.set(State.RESTORING); }
protected final void completeRestore(RestoreOptions options) throws ExecutionException, Exception { if (getState() == State.RESTORING) { logger.debug("Shutting down '{0}' after content has been restored", getName()); doShutdown(false); logger.debug("Starting '{0}' after content has been restored", getName()); start(); logger.debug("Started '{0}' after content has been restored; beginning indexing of content", getName()); if (options.reindexContentOnFinish()) { // Reindex all content ... queryManager().cleanAndReindex(false); logger.debug("Completed reindexing all content in '{0}' after restore.", getName()); } } }
protected final void completeRestore(RestoreOptions options) throws ExecutionException, Exception { if (getState() == State.RESTORING) { logger.debug("Shutting down '{0}' after content has been restored", getName()); doShutdown(false); logger.debug("Starting '{0}' after content has been restored", getName()); start(); logger.debug("Started '{0}' after content has been restored; beginning indexing of content", getName()); if (options.reindexContentOnFinish()) { // Reindex all content ... queryManager().cleanAndReindex(false); logger.debug("Completed reindexing all content in '{0}' after restore.", getName()); } } }
protected Transactions createTransactions(TransactionManager txnMgr, SchematicDb db) { if (txnMgr == null) { throw new ConfigurationException(JcrI18n.repositoryCannotBeStartedWithoutTransactionalSupport.text(getName())); } return new Transactions(txnMgr, db); }
protected Transactions createTransactions(TransactionManager txnMgr, SchematicDb db) { if (txnMgr == null) { throw new ConfigurationException(JcrI18n.repositoryCannotBeStartedWithoutTransactionalSupport.text(getName())); } return new Transactions(txnMgr, db); }
protected void unbindFromJndi() { if (jndiName != null && jndiName.trim().length() != 0) { try { InitialContext ic = new InitialContext(); ic.unbind(jndiName); } catch (NoInitialContextException e) { // No JNDI here ... logger.debug("No JNDI found, so not registering '{0}' repository", getName()); } catch (OperationNotSupportedException e) { warn(JcrI18n.jndiReadOnly, config.getName(), jndiName); } catch (Exception e) { logger.warn(JcrI18n.jndiReadOnly, config.getName(), jndiName); } } }
@Test public void shouldFindConfigFileOnClasspath() throws Exception { configFile = new StringRefAddr("configFile", "tck/default/repo-config.json"); reference.add(configFile); reference.add(repositoryName); JcrRepository repo = (JcrRepository)factory.getObjectInstance(reference, null, null, null); try { assertThat(repo, is(notNullValue())); assertThat(repo.getName(), is(JCR_REPOSITORY_NAME)); } finally { repo.shutdown(); } }
@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)); }
@Override public void reindexSince( long timestamp ) throws RepositoryException { // First check permissions ... session.checkPermission(workspaceName, Path.ROOT_PATH, ModeShapePermissions.INDEX_WORKSPACE); // then if the journal is available JcrRepository.RunningState runningState = repository().runningState(); if (runningState.journal() == null) { throw new RepositoryException(JcrI18n.cannotReindexJournalNotEnabled.text(timestamp, repository().getName())); } runningState.queryManager().reindexSince(this, timestamp); }
@Override public void reindexSince( long timestamp ) throws RepositoryException { // First check permissions ... session.checkPermission(workspaceName, Path.ROOT_PATH, ModeShapePermissions.INDEX_WORKSPACE); // then if the journal is available JcrRepository.RunningState runningState = repository().runningState(); if (runningState.journal() == null) { throw new RepositoryException(JcrI18n.cannotReindexJournalNotEnabled.text(timestamp, repository().getName())); } runningState.queryManager().reindexSince(this, timestamp); }
protected void validateCrossWorkspaceAction( String srcWorkspace ) throws RepositoryException { CheckArg.isNotEmpty(srcWorkspace, "srcWorkspace"); session.checkLive(); session.checkWorkspacePermission(srcWorkspace, ModeShapePermissions.READ); session.checkWorkspacePermission(getName(), ModeShapePermissions.READ); JcrRepository repository = repository(); if (!repository.hasWorkspace(srcWorkspace)) { throw new NoSuchWorkspaceException(JcrI18n.workspaceNameIsInvalid.text(repository.getName(), srcWorkspace)); } }
protected void validateCrossWorkspaceAction( String srcWorkspace ) throws RepositoryException { CheckArg.isNotEmpty(srcWorkspace, "srcWorkspace"); session.checkLive(); session.checkWorkspacePermission(srcWorkspace, ModeShapePermissions.READ); session.checkWorkspacePermission(getName(), ModeShapePermissions.READ); JcrRepository repository = repository(); if (!repository.hasWorkspace(srcWorkspace)) { throw new NoSuchWorkspaceException(JcrI18n.workspaceNameIsInvalid.text(repository.getName(), srcWorkspace)); } }
@Override public Future<Boolean> reindexSinceAsync( long timestamp ) throws RepositoryException { // First check permissions ... session.checkPermission(workspaceName, Path.ROOT_PATH, ModeShapePermissions.INDEX_WORKSPACE); // then if the journal is available JcrRepository.RunningState runningState = repository().runningState(); if (runningState.journal() == null) { throw new RepositoryException(JcrI18n.cannotReindexJournalNotEnabled.text(timestamp, repository().getName())); } return runningState.queryManager().reindexSinceAsync(this, timestamp); }
@Override public Future<Boolean> reindexSinceAsync( long timestamp ) throws RepositoryException { // First check permissions ... session.checkPermission(workspaceName, Path.ROOT_PATH, ModeShapePermissions.INDEX_WORKSPACE); // then if the journal is available JcrRepository.RunningState runningState = repository().runningState(); if (runningState.journal() == null) { throw new RepositoryException(JcrI18n.cannotReindexJournalNotEnabled.text(timestamp, repository().getName())); } return runningState.queryManager().reindexSinceAsync(this, timestamp); }
public static void killRepository( JcrRepository repository ) { if (repository == null || repository.getState() != State.RUNNING) return; try { // Rollback any open transactions ... killTransaction(repository.runningState().txnManager()); // First shut down the repository ... repository.doShutdown(false); } catch (Throwable t) { log.error(t, JcrI18n.errorKillingRepository, repository.getName(), t.getMessage()); } }