rm.setProvider(defaultRepositoryMapping.getProvider()); rm.setLoadOnStartup(true);
@Override public void loadRepository(RepositoryDefinition definition) throws RepositoryNotInitializedException, InstantiationException, IllegalAccessException, ClassNotFoundException { log.info("Loading JCR {}", definition.getName()); // create also mgnlVersion and mgnlSystem for each repository. Set<String> workspaces = new LinkedHashSet<>(definition.getWorkspaces()); workspaces.addAll(Arrays.asList(RepositoryConstants.SYSTEM, RepositoryConstants.VERSION_STORE)); definition.getWorkspaces().clear(); definition.getWorkspaces().addAll(workspaces); Class<? extends Provider> providerClass = Classes.getClassFactory().forName(definition.getProvider()); Provider provider = Components.getComponentProvider().newInstance(providerClass); provider.init(definition); Repository repository = provider.getUnderlyingRepository(); workspaceMapping.setRepository(definition.getName(), repository); workspaceMapping.setRepositoryProvider(definition.getName(), provider); if (definition.isLoadOnStartup()) { for (String workspaceId : workspaces) { registerNameSpacesAndNodeTypes(workspaceId, definition, provider); } } }
RepositoryDefinition magnolia = repositoryDefinitionIterator.next(); assertEquals("magnolia", magnolia.getName()); assertEquals("provider-class", magnolia.getProvider()); assertTrue(magnolia.isLoadOnStartup()); assertEquals(2, magnolia.getParameters().size()); assertEquals("another-provider-class", anotherRepository.getProvider()); assertFalse(anotherRepository.isLoadOnStartup()); assertEquals(0, anotherRepository.getParameters().size()); assertEquals("third-provider-class", repositoryWithoutWorkspaces.getProvider()); assertFalse(repositoryWithoutWorkspaces.isLoadOnStartup()); assertEquals(0, repositoryWithoutWorkspaces.getParameters().size());