/** * @see info.magnolia.repository.Provider#registerNodeTypes(java.lang.String) */ @Override public void registerNodeTypes(String configuration) throws RepositoryException { if (StringUtils.isEmpty(configuration)) { configuration = this.repositoryMapping.getParameters().get(CUSTOM_NODETYPES); } InputStream xml = getNodeTypeDefinition(configuration); this.registerNodeTypes(xml); }
/** * Verify that workspace exists in clustered repository. * @param workspace The name of the workspace * @return {@code true} if workspace is a shared workspace that is configured in a clustered repository */ public boolean isClusteredWorkspace(String workspace) { String clusterConfigFile = magnoliaConfigurationProperties.getProperty(MagnoliaConfigurationProperties.MAGNOLIA_REPOSITORIES_CLUSTER_CONFIG); if (StringUtils.isBlank(clusterConfigFile)) { return false; } Collection<RepositoryDefinition> repoDefinitions = workspaceMapping.getRepositoryDefinitions(); for (RepositoryDefinition repoDefinition : repoDefinitions) { if (repoDefinition.getParameters().containsValue(clusterConfigFile) && repoDefinition.getWorkspaces().contains(workspace)) { return true; } } return false; }
Map params = this.repositoryMapping.getParameters(); String configFile = (String) params.get(CONFIG_FILENAME_KEY); configFile = fileSystemHelper.getAbsoluteFileSystemPath(configFile);
final Map<String, String> defaultParameters = defaultRepositoryMapping.getParameters();
@Override @Before public void setUp() throws Exception { properties = mock(MagnoliaConfigurationProperties.class); WorkspaceMapping workspaceMapping = mock(WorkspaceMapping.class); given(workspaceMapping.getLogicalWorkspaceNames()).willReturn(newArrayList("website")); RepositoryDefinition repositoryDefinition = mock(RepositoryDefinition.class); Map<String, String> definitionMap = newHashMap(); definitionMap.put("website", "website"); given(repositoryDefinition.getParameters()).willReturn(definitionMap); given(repositoryDefinition.getWorkspaces()).willReturn(newArrayList("website")); given(workspaceMapping.getRepositoryDefinitions()).willReturn(newArrayList(repositoryDefinition)); FileSystemHelper fileSystemHelper = new FileSystemHelper(properties); DefaultRepositoryManager repositoryManager = new DefaultRepositoryManager(properties, workspaceMapping, fileSystemHelper); handler = new WebappVersionHandler(repositoryManager); context = mock(InstallContext.class); super.setUp(); Session session = MgnlContext.getJCRSession("website"); session.getRootNode().addNode("x"); }
@Override @Before public void setUp() throws Exception { super.setUp(); Session session = MgnlContext.getJCRSession(RepositoryConstants.WEBSITE); root = session.getRootNode(); properties = mock(MagnoliaConfigurationProperties.class); WorkspaceMapping workspaceMapping = mock(WorkspaceMapping.class); given(workspaceMapping.getLogicalWorkspaceNames()).willReturn(newArrayList("website")); Provider provider = mock(Provider.class); given(workspaceMapping.getRepositoryProvider(anyString())).willReturn(provider); RepositoryDefinition repositoryDefinition = mock(RepositoryDefinition.class); Map<String, String> definitionMap = newHashMap(); definitionMap.put("website", "website"); given(repositoryDefinition.getParameters()).willReturn(definitionMap); given(repositoryDefinition.getWorkspaces()).willReturn(newArrayList("website")); given(workspaceMapping.getRepositoryDefinitions()).willReturn(newArrayList(repositoryDefinition)); DefaultRepositoryManager repositoryManager = new DefaultRepositoryManager(properties, workspaceMapping); repoMan = Components.getComponent(RepositoryManager.class); ComponentsTestUtil.setInstance(RepositoryManager.class, repositoryManager); }
@Test public void repositoryIsClusteredAndClusterMaster() throws Exception { // GIVEN MagnoliaConfigurationProperties properties = mock(MagnoliaConfigurationProperties.class); given(properties.getProperty(MagnoliaConfigurationProperties.MAGNOLIA_REPOSITORIES_CLUSTER_CONFIG)).willReturn("website"); given(properties.getBooleanProperty(MagnoliaConfigurationProperties.MAGNOLIA_REPOSITORIES_CLUSTER_MASTER)).willReturn(true); given(properties.hasProperty(MagnoliaConfigurationProperties.MAGNOLIA_REPOSITORIES_CLUSTER_MASTER)).willReturn(true); WorkspaceMapping workspaceMapping = new WorkspaceMapping(); RepositoryDefinition repositoryDefinition = mock(RepositoryDefinition.class); Map<String, String> definitionMap = newHashMap(); definitionMap.put("website", "website"); definitionMap.put("null-mgnlVersion", "mgnlVersion"); given(repositoryDefinition.getName()).willReturn("magnolia"); given(repositoryDefinition.getParameters()).willReturn(definitionMap); given(repositoryDefinition.getWorkspaces()).willReturn(newArrayList("website", "mgnlVersion")); workspaceMapping.addRepositoryDefinition(repositoryDefinition); workspaceMapping.addWorkspaceMapping(new WorkspaceMappingDefinition("magnolia-mgnlVersion", "magnolia", "mgnlVersion")); workspaceMapping.addWorkspaceMapping(new WorkspaceMappingDefinition("website", "magnolia", "website")); DefaultRepositoryManager repositoryManager = new DefaultRepositoryManager(properties, workspaceMapping); ComponentsTestUtil.setInstance(RepositoryManager.class, repositoryManager); // WHEN ModuleManagerImpl moduleManager = new TestModuleManagerImpl(moduleVersionHandlers, context, moduleDefinitionReader, moduleRegistry, repositoryManager); moduleManager.applyDeltas(moduleDefinition, newArrayList(delta), context); // THEN assertThat(websiteSession.hasPendingChanges(), is(false)); }
assertEquals("provider-class", magnolia.getProvider()); assertTrue(magnolia.isLoadOnStartup()); assertEquals(2, magnolia.getParameters().size()); assertEquals("value1", magnolia.getParameters().get("parameter1")); assertEquals("value2", magnolia.getParameters().get("parameter2")); assertEquals(2, magnolia.getWorkspaces().size()); assertTrue(magnolia.getWorkspaces().contains("website")); assertEquals("another-provider-class", anotherRepository.getProvider()); assertFalse(anotherRepository.isLoadOnStartup()); assertEquals(0, anotherRepository.getParameters().size()); assertEquals(1, anotherRepository.getWorkspaces().size()); assertTrue(anotherRepository.getWorkspaces().contains("physicalName")); assertEquals("third-provider-class", repositoryWithoutWorkspaces.getProvider()); assertFalse(repositoryWithoutWorkspaces.isLoadOnStartup()); assertEquals(0, repositoryWithoutWorkspaces.getParameters().size()); assertEquals(1, repositoryWithoutWorkspaces.getWorkspaces().size()); assertTrue(repositoryWithoutWorkspaces.getWorkspaces().contains("default"));