Skip to content

Commit

Permalink
JCR-4949: get rid of beanutils dependency
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/trunk@1910962 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
reschke committed Jul 13, 2023
1 parent 85c99d4 commit 8a5df9d
Show file tree
Hide file tree
Showing 9 changed files with 97 additions and 82 deletions.
5 changes: 0 additions & 5 deletions jackrabbit-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -302,11 +302,6 @@ org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testURILiteral
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-benchmark</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
package org.apache.jackrabbit.core;

import java.io.InputStream;
import java.util.Map;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

import javax.jcr.Credentials;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;

import org.apache.commons.beanutils.BeanMap;
import org.apache.jackrabbit.commons.repository.ProxyRepository;
import org.apache.jackrabbit.commons.repository.RepositoryFactory;
import org.apache.jackrabbit.core.config.ConfigurationException;
Expand Down Expand Up @@ -117,11 +117,16 @@ public static synchronized Repository getInstance() throws RepositoryException {
private static Repository getIntegratedInstance() throws Exception {
Class test =
Class.forName("org.apache.jackrabbit.test.AbstractJCRTest");
Map helper = new BeanMap(test.getField("helper").get(null));
Field helperField = test.getField("helper");
helperField.setAccessible(true);
Object helper = helperField.get(null);
Method getRepository = helper.getClass().getMethod("getRepository");
Method getSuperuserCredentials = helper.getClass().getMethod("getSuperuserCredentials");
final Repository repository =
(Repository) helper.get("repository");
(Repository) getRepository.invoke(helper);
final Credentials superuser =
(Credentials) helper.get("superuserCredentials");
(Credentials) getSuperuserCredentials.invoke(helper);

return new ProxyRepository(new RepositoryFactory() {

public Repository getRepository() throws RepositoryException {
Expand Down
5 changes: 0 additions & 5 deletions jackrabbit-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -456,11 +456,6 @@
<artifactId>concurrent</artifactId>
<version>1.3.4</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
Expand Down
4 changes: 0 additions & 4 deletions jackrabbit-standalone-components/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,6 @@
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
Expand Down
4 changes: 0 additions & 4 deletions jackrabbit-webapp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,6 @@
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,12 @@
*/
package org.apache.jackrabbit.j2ee;

import org.apache.commons.beanutils.BeanMap;
import org.apache.jackrabbit.util.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;

/**
* Abstract configuration class that is based on a bean map.
Expand All @@ -40,54 +35,7 @@ public abstract class AbstractConfig {

protected boolean valid;

private BeanMap map = new BeanMap(this);

/**
* Initializes the configuration with values from the given properties
* @param props the configuration properties
*/
public void init(Properties props) throws ServletException {
Iterator iter = props.keySet().iterator();
while (iter.hasNext()) {
String name = (String) iter.next();
String mapName = toMapName(name, '.');
try {
if (map.containsKey(mapName)) {
map.put(mapName, props.getProperty(name));
}
} catch (Exception e) {
throw new ServletExceptionWithCause(
"Invalid configuration property: " + name, e);
}
}
}

public void init(ServletConfig ctx) throws ServletException {
Enumeration names = ctx.getInitParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
String mapName = toMapName(name, '-');
try {
if (map.containsKey(mapName)) {
map.put(mapName, ctx.getInitParameter(name));
}
} catch (Exception e) {
throw new ServletExceptionWithCause(
"Invalid servlet configuration option: " + name, e);
}
}
}

public String toMapName(String name, char delim) {
StringBuffer ret = new StringBuffer();
String[] elems = Text.explode(name, delim);
ret.append(elems[0]);
for (int i=1; i<elems.length; i++) {
ret.append(elems[i].substring(0, 1).toUpperCase());
ret.append(elems[i].substring(1));
}
return ret.toString();
}
private HashMap map = new HashMap();

public void validate() {
valid = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,35 @@ public class BootstrapConfig extends AbstractConfig {
private RMIConfig rmiConfig = new RMIConfig(this);

public void init(Properties props) throws ServletException {
super.init(props);
String property = props.getProperty("repository.home");;
if (property != null) {
setRepositoryHome(property);
}
property = props.getProperty("repository.config");;
if (property != null) {
setRepositoryConfig(property);
}
property = props.getProperty("repository.name");;
if (property != null) {
setRepositoryName(property);
}
jndiConfig.init(props);
rmiConfig.init(props);
}

public void init(ServletConfig ctx) throws ServletException {
super.init(ctx);
String property = ctx.getInitParameter("repository-home");
if (property != null) {
setRepositoryHome(property);
}
property = ctx.getInitParameter("repository-config");
if (property != null) {
setRepositoryConfig(property);
}
property = ctx.getInitParameter("repository-name");
if (property != null) {
setRepositoryName(property);
}
jndiConfig.init(ctx);
rmiConfig.init(ctx);
}
Expand All @@ -65,6 +87,7 @@ public String getRepositoryHome() {
}

public void setRepositoryHome(String repositoryHome) {

this.repositoryHome = repositoryHome;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,14 @@ public Properties getJndiEnv() {
}

public void init(Properties props) throws ServletException {
super.init(props);
String property = props.getProperty("jndi.enabled");;
if (property != null) {
setJndiEnabled(property);
}
property = props.getProperty("jndi.name");;
if (property != null) {
setJndiName(property);
}
// add all props whose name starts with 'java.namming.' to the env
Iterator iter = props.keySet().iterator();
while (iter.hasNext()) {
Expand All @@ -89,7 +96,14 @@ public void init(Properties props) throws ServletException {
}

public void init(ServletConfig ctx) throws ServletException {
super.init(ctx);
String property = ctx.getInitParameter("jndi-enabled");
if (property != null) {
setJndiEnabled(property);
}
property = ctx.getInitParameter("jndi-name");
if (property != null) {
setJndiName(property);
}
// add all params whose name starts with 'java.namming.' to the env
Enumeration names = ctx.getInitParameterNames();
while (names.hasMoreElements()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.rmi.registry.Registry;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
Expand Down Expand Up @@ -66,8 +67,50 @@ public RMIConfig(BootstrapConfig parentConfig) {
this.parentConfig = parentConfig;
}

public void init(Properties props) throws ServletException {
String property = props.getProperty("rmi.name");;
if (property != null) {
setRmiName(property);
}
property = props.getProperty("rmi.enabled");
if (property != null) {
setRmiEnabled(property);
}
property = props.getProperty("rmi.port");
if (property != null) {
setRmiPort(property);
}
property = props.getProperty("rmi.host");
if (property != null) {
setRmiHost(property);
}
property = props.getProperty("rmi.uri");
if (property != null) {
setRmiUri(property);
}
}

public void init(ServletConfig ctx) throws ServletException {
super.init(ctx);
String property = ctx.getInitParameter("rmi-name");
if (property != null) {
setRmiName(property);
}
property = ctx.getInitParameter("rmi-enabled");
if (property != null) {
setRmiEnabled(property);
}
property = ctx.getInitParameter("rmi-port");
if (property != null) {
setRmiPort(property);
}
property = ctx.getInitParameter("rmi-host");
if (property != null) {
setRmiHost(property);
}
property = ctx.getInitParameter("rmi-uri");
if (property != null) {
setRmiUri(property);
}
// enable RMI if either port or url was defined
rmiEnabled = rmiPort >=0 || rmiUri != null;
}
Expand Down

0 comments on commit 8a5df9d

Please sign in to comment.