public void addWorkspaceMappingDefinition(WorkspaceMappingDefinition definition) { workspaceMappingDefinitions.put(definition.getLogicalWorkspaceName(), definition); }
/** * Returns the logical workspace name given a physical workspace name. Note that this method will return the FIRST * physical workspace it finds with this name. If there are more workspaces with this name it is not defined which * is returned. * * @return the logical workspace name or if no such logical workspace exists returns the physical workspace name given as an argument * @deprecated since 4.5 - do not use. */ public static String getInternalWorkspaceName(String physicalWorkspaceName) { RepositoryManager repositoryManager = Components.getComponent(RepositoryManager.class); Collection<WorkspaceMappingDefinition> repositoryNameMap = repositoryManager.getWorkspaceMappings(); for (WorkspaceMappingDefinition mappingDefinition : repositoryNameMap) { if (mappingDefinition.getPhysicalWorkspaceName().equalsIgnoreCase(physicalWorkspaceName)) { return mappingDefinition.getLogicalWorkspaceName(); } } log.error("No Repository/Workspace name mapping defined for {}", physicalWorkspaceName); return physicalWorkspaceName; }
@Override public void createWorkspace(String repository, String logicalWorkspaceName) throws RepositoryException { for (WorkspaceMappingDefinition mapping : workspaceMapping.getWorkspaceMappings()) { Session session = getSystemSession(mapping.getLogicalWorkspaceName()); try { if (mapping.getRepositoryName().equals(repository)) { Workspace workspace = session.getWorkspace(); workspace.createWorkspace(logicalWorkspaceName); workspaceMapping.addWorkspaceMapping(new WorkspaceMappingDefinition(logicalWorkspaceName, repository, logicalWorkspaceName)); return; } } finally { session.logout(); } } throw new RepositoryException("Repository [" + repository + "] doesn't exist."); }
/** * Adds workspace mapping, if the physical workspace doesn't exist it is added. */ public void addWorkspaceMapping(WorkspaceMappingDefinition mapping) { if (workspaceMappingDefinitions.containsKey(mapping.getLogicalWorkspaceName())) { return; } addWorkspaceMappingDefinition(mapping); RepositoryDefinition repositoryDefinition = getRepositoryDefinition(mapping.getRepositoryName()); if (!repositoryDefinition.getWorkspaces().contains(mapping.getPhysicalWorkspaceName())) { repositoryDefinition.addWorkspace(mapping.getPhysicalWorkspaceName()); } }
if (StringUtils.equals(RepositoryConstants.VERSION_STORE, definition.getLogicalWorkspaceName()) || StringUtils.equals(RepositoryConstants.VERSION_STORE, definition.getLogicalWorkspaceName())) { log.warn("Please remove {} workspace definition from the repositories.xml configuration, this workspace is created automatically for each repository thus does not need to be specified in the configuration file.", RepositoryConstants.VERSION_STORE); } else if (StringUtils.equals(RepositoryConstants.SYSTEM, definition.getLogicalWorkspaceName()) || StringUtils.equals(RepositoryConstants.SYSTEM, definition.getPhysicalWorkspaceName())) { log.warn("Please remove {} workspace definition from the repositories.xml configuration, this workspace is created automatically for each repository thus does not need to be specified in the configuration file.", RepositoryConstants.SYSTEM); } else { workspaceMappingDefinitions.put(definition.getLogicalWorkspaceName(), definition);
assertEquals("website", mapping1.getLogicalWorkspaceName()); assertEquals("magnolia", mapping1.getRepositoryName()); assertEquals("website", mapping1.getPhysicalWorkspaceName()); assertEquals("data", mapping2.getLogicalWorkspaceName()); assertEquals("anotherRepository", mapping2.getRepositoryName()); assertEquals("physicalName", mapping2.getPhysicalWorkspaceName()); assertEquals("config", mapping3.getLogicalWorkspaceName()); assertEquals("magnolia", mapping3.getRepositoryName()); assertEquals("config", mapping3.getPhysicalWorkspaceName());