1 package org
.argeo
.cms
.internal
.jcr
;
3 import java
.util
.Properties
;
5 import org
.apache
.jackrabbit
.core
.config
.BeanConfig
;
6 import org
.apache
.jackrabbit
.core
.config
.ConfigurationException
;
7 import org
.apache
.jackrabbit
.core
.config
.RepositoryConfigurationParser
;
8 import org
.apache
.jackrabbit
.core
.config
.WorkspaceSecurityConfig
;
9 import org
.apache
.jackrabbit
.core
.util
.db
.ConnectionFactory
;
10 import org
.w3c
.dom
.Element
;
13 * A {@link RepositoryConfigurationParser} providing more flexibility with
16 @SuppressWarnings("restriction")
17 class CustomRepositoryConfigurationParser
extends RepositoryConfigurationParser
{
18 private ClassLoader classLoader
= null;
20 public CustomRepositoryConfigurationParser(Properties variables
) {
24 public CustomRepositoryConfigurationParser(Properties variables
, ConnectionFactory connectionFactory
) {
25 super(variables
, connectionFactory
);
29 protected RepositoryConfigurationParser
createSubParser(Properties variables
) {
30 Properties props
= new Properties(getVariables());
31 props
.putAll(variables
);
32 CustomRepositoryConfigurationParser subParser
= new CustomRepositoryConfigurationParser(props
,
34 subParser
.setClassLoader(classLoader
);
39 public WorkspaceSecurityConfig
parseWorkspaceSecurityConfig(Element parent
) throws ConfigurationException
{
40 WorkspaceSecurityConfig workspaceSecurityConfig
= super.parseWorkspaceSecurityConfig(parent
);
41 workspaceSecurityConfig
.getAccessControlProviderConfig().setClassLoader(classLoader
);
42 return workspaceSecurityConfig
;
46 protected BeanConfig
parseBeanConfig(Element parent
, String name
) throws ConfigurationException
{
47 BeanConfig beanConfig
= super.parseBeanConfig(parent
, name
);
48 if (beanConfig
.getClassName().startsWith("org.argeo")) {
49 beanConfig
.setClassLoader(classLoader
);
54 public void setClassLoader(ClassLoader classLoader
) {
55 this.classLoader
= classLoader
;