@Override public boolean checkIfInitialized() throws RepositoryException { Collection<String> workspaceNames = workspaceMapping.getLogicalWorkspaceNames(); for (String workspace : workspaceNames) { if (checkIfInitialized(workspace)) { return true; } } return false; }
@Override public Repository getUnderlyingRepository() throws RepositoryNotInitializedException { if (this.repository == null) { throw new RepositoryNotInitializedException("Null repository"); } return this.repository; }
@Override public boolean hasRepository(String repositoryId) { return workspaceMapping.getRepositoryDefinition(repositoryId) != null; }
@Override public Session getSystemSession(String logicalWorkspaceName) throws RepositoryException { WorkspaceMappingDefinition mapping = this.workspaceMapping.getWorkspaceMapping(logicalWorkspaceName); if (mapping == null) { throw new NoSuchWorkspaceException(logicalWorkspaceName); } Provider provider = getRepositoryProvider(mapping.getRepositoryName()); return wrapSession(provider.getSystemSession(mapping.getPhysicalWorkspaceName()), logicalWorkspaceName); }
@Override public void shutdown() { log.info("Shutting down JCR"); for (RepositoryDefinition repositoryDefinition : workspaceMapping.getRepositoryDefinitions()) { Provider provider = workspaceMapping.getRepositoryProvider(repositoryDefinition.getName()); provider.shutdownRepository(); } workspaceMapping.clearAll(); }
@Override public String getRepositoryNameForWorkspace(String logicalWorkspaceName) { if (hasWorkspace(logicalWorkspaceName)) { return workspaceMapping.getWorkspaceMapping(logicalWorkspaceName).getRepositoryName(); } throw new IllegalStateException("No repository known for logical workspace name " + logicalWorkspaceName); }
/** * Overriding the default system config properties with cluster-related config. */ @Override protected void extractConfigFilesForTests() throws Exception { extractConfigFile(REPO_CONF_PROPERTY, getRepositoryConfigFileStream(), EXTRACTED_REPO_CONF_FILE); extractConfigFile(JACKRABBIT_CLUSTER_REPO_CONF_PROPERTY, getJackrabbitClusterRepositoryConfigFileStream(), EXTRACTED_JACKRABBIT_CLUSTER_REPO_CONF_FILE); extractConfigFile(JACKRABBIT_REPO_CONF_PROPERTY, getJackrabbitRepositoryConfigFileStream(), EXTRACTED_JACKRABBIT_REPO_CONF_FILE); }
protected RepositoryManager initRepositoryManager(MagnoliaConfigurationProperties configurationProperties, FileSystemHelper fileSystemHelper) { return new DefaultRepositoryManager(configurationProperties, new WorkspaceMapping(), fileSystemHelper); }
@Override public Repository getRepository(String repositoryId) { return workspaceMapping.getRepository(repositoryId); }
private boolean isClustered(String repositoryName) { return repositoryManager instanceof DefaultRepositoryManager && ((DefaultRepositoryManager) repositoryManager).isClusteredWorkspace(repositoryName); }
@Override protected Session internalGetSession(String workspaceName) throws RepositoryException { return repositoryManager.getSystemSession(workspaceName); }
@Override public Provider getRepositoryProvider(String repositoryId) { return workspaceMapping.getRepositoryProvider(repositoryId); }
@Override public void addWorkspaceMapping(WorkspaceMappingDefinition mapping) { workspaceMapping.addWorkspaceMapping(mapping); }
@Override public Collection<String> getWorkspaceNames() { return workspaceMapping.getLogicalWorkspaceNames(); }
@Override public Collection<RepositoryDefinition> getRepositoryDefinitions() { return workspaceMapping.getRepositoryDefinitions(); }
@Override public void init() { log.info("Loading JCR"); workspaceMapping.clearRepositories(); try { loadRepositories(); log.debug("JCR loaded"); } catch (Exception e) { log.error(e.getMessage(), e); } }
@Override public boolean hasWorkspace(String logicalWorkspaceName) { return workspaceMapping.getWorkspaceMapping(logicalWorkspaceName) != null; }
@Override public Collection<WorkspaceMappingDefinition> getWorkspaceMappings() { return workspaceMapping.getWorkspaceMappings(); }
@Override public RepositoryDefinition getRepositoryDefinition(String repositoryId) { return workspaceMapping.getRepositoryDefinition(repositoryId); }
@Override public WorkspaceMappingDefinition getWorkspaceMapping(String logicalWorkspaceName) { return workspaceMapping.getWorkspaceMapping(logicalWorkspaceName); }