1 package org
.argeo
.cms
.internal
.jcr
;
3 import java
.util
.Properties
;
5 import org
.apache
.jackrabbit
.core
.config
.ConfigurationException
;
6 import org
.apache
.jackrabbit
.core
.config
.RepositoryConfigurationParser
;
7 import org
.apache
.jackrabbit
.core
.config
.WorkspaceSecurityConfig
;
8 import org
.apache
.jackrabbit
.core
.util
.db
.ConnectionFactory
;
9 import org
.w3c
.dom
.Element
;
12 * A {@link RepositoryConfigurationParser} providing more flexibility with
15 @SuppressWarnings("restriction")
16 class CustomRepositoryConfigurationParser
extends RepositoryConfigurationParser
{
17 private ClassLoader accessControlProviderClassLoader
= null;
19 public CustomRepositoryConfigurationParser(Properties variables
) {
23 public CustomRepositoryConfigurationParser(Properties variables
, ConnectionFactory connectionFactory
) {
24 super(variables
, connectionFactory
);
28 protected RepositoryConfigurationParser
createSubParser(Properties variables
) {
29 Properties props
= new Properties(getVariables());
30 props
.putAll(variables
);
31 CustomRepositoryConfigurationParser subParser
= new CustomRepositoryConfigurationParser(props
,
33 subParser
.setAccessControlProviderClassLoader(accessControlProviderClassLoader
);
38 public WorkspaceSecurityConfig
parseWorkspaceSecurityConfig(Element parent
) throws ConfigurationException
{
39 WorkspaceSecurityConfig workspaceSecurityConfig
= super.parseWorkspaceSecurityConfig(parent
);
40 workspaceSecurityConfig
.getAccessControlProviderConfig().setClassLoader(accessControlProviderClassLoader
);
41 return workspaceSecurityConfig
;
44 public void setAccessControlProviderClassLoader(ClassLoader accessControlProviderClassLoader
) {
45 this.accessControlProviderClassLoader
= accessControlProviderClassLoader
;