From 77374592113104c6a94b07881ff47a9b72104f69 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 11 Dec 2010 10:57:25 +0800 Subject: [PATCH 1/2] Remove the dependency to log4j internal class. --- .../src/main/java/org/apache/juddi/ClassUtil.java | 20 ++++++++++++++++++++ .../java/org/apache/juddi/config/AppConfig.java | 4 ++-- .../main/java/org/apache/juddi/config/Install.java | 11 ++++++----- .../apache/juddi/v3/auth/XMLDocAuthenticator.java | 4 ++-- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/juddi-core/src/main/java/org/apache/juddi/ClassUtil.java b/juddi-core/src/main/java/org/apache/juddi/ClassUtil.java index 867f59a..f13054d 100644 --- a/juddi-core/src/main/java/org/apache/juddi/ClassUtil.java +++ b/juddi-core/src/main/java/org/apache/juddi/ClassUtil.java @@ -16,6 +16,8 @@ */ package org.apache.juddi; +import java.net.URL; + /** * @author Tom Cunningham */ @@ -49,4 +51,22 @@ public class ClassUtil { return Class.forName(name, true, ClassLoader.getSystemClassLoader()) ; } + + + public static URL getResource(String name, Class caller) + { + ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader(); + if (threadClassLoader != null) { + + URL url = threadClassLoader.getResource(name); + + if (url != null) + return url; + + } + + ClassLoader callerClassLoader = caller.getClassLoader(); + + return callerClassLoader.getResource(name); + } } diff --git a/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java b/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java index 82b903e..61c4844 100644 --- a/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java +++ b/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java @@ -30,13 +30,13 @@ import org.apache.commons.configuration.MapConfiguration; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.SystemConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; +import org.apache.juddi.ClassUtil; import org.apache.juddi.Registry; import org.apache.juddi.keygen.KeyGenerator; import org.apache.juddi.model.UddiEntityPublisher; import org.apache.juddi.query.FindBusinessByCategoryQuery; import org.apache.juddi.query.util.FindQualifiers; import org.apache.log4j.Logger; -import org.apache.log4j.helpers.Loader; import org.uddi.api_v3.CategoryBag; import org.uddi.api_v3.KeyedReference; @@ -81,7 +81,7 @@ public class AppConfig } else { propConfig = new PropertiesConfiguration(JUDDI_PROPERTIES); } - URL url = Loader.getResource(JUDDI_PROPERTIES); + URL url = ClassUtil.getResource(JUDDI_PROPERTIES, this.getClass()); log.info("Reading from properties file: " + url); long refreshDelay = propConfig.getLong(Property.JUDDI_CONFIGURATION_RELOAD_DELAY, 1000l); log.debug("Setting refreshDelay to " + refreshDelay); diff --git a/juddi-core/src/main/java/org/apache/juddi/config/Install.java b/juddi-core/src/main/java/org/apache/juddi/config/Install.java index b0a6a6c..1ff3667 100644 --- a/juddi-core/src/main/java/org/apache/juddi/config/Install.java +++ b/juddi-core/src/main/java/org/apache/juddi/config/Install.java @@ -43,6 +43,7 @@ import javax.xml.transform.stream.StreamSource; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; +import org.apache.juddi.ClassUtil; import org.apache.juddi.api.impl.UDDIInquiryImpl; import org.apache.juddi.keygen.KeyGenerator; import org.apache.juddi.mapping.MappingApiToModel; @@ -55,7 +56,6 @@ import org.apache.juddi.v3.error.ValueNotAllowedException; import org.apache.juddi.validation.ValidatePublish; import org.apache.juddi.validation.ValidateUDDIKey; import org.apache.log4j.Logger; -import org.apache.log4j.helpers.Loader; import org.uddi.api_v3.SaveTModel; import org.uddi.api_v3.TModel; import org.uddi.v3_service.DispositionReportFaultMessage; @@ -494,9 +494,9 @@ public class Install { private static List getPublishers(Configuration config) throws ConfigurationException { List publishers = new ArrayList(); String basePath = JUDDI_CUSTOM_INSTALL_DATA_DIR; - URL url = Loader.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR); + URL url = ClassUtil.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR,Install.class); if (url==null) { - url = Loader.getResource(JUDDI_INSTALL_DATA_DIR); + url = ClassUtil.getResource(JUDDI_INSTALL_DATA_DIR,Install.class); basePath = JUDDI_INSTALL_DATA_DIR; } @@ -564,12 +564,13 @@ public class Install { InputStream resourceStream = null; // First try the custom install directory - URL url = Loader.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR + fileName); + + URL url = ClassUtil.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR + fileName,Install.class); if (url != null) resourceStream = url.openStream(); // If the custom install directory doesn't exist, then use the standard install directory where the resource is guaranteed to exist. if (resourceStream == null) { - url = Loader.getResource(JUDDI_INSTALL_DATA_DIR + fileName); + url = ClassUtil.getResource(JUDDI_INSTALL_DATA_DIR + fileName,Install.class); if (url != null) { resourceStream = url.openStream(); } diff --git a/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java b/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java index f9c17a4..35f2722 100644 --- a/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java +++ b/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java @@ -28,6 +28,7 @@ import javax.xml.bind.Unmarshaller; import javax.xml.transform.stream.StreamSource; import org.apache.commons.configuration.ConfigurationException; +import org.apache.juddi.ClassUtil; import org.apache.juddi.config.AppConfig; import org.apache.juddi.config.Property; import org.apache.juddi.model.UddiEntityPublisher; @@ -36,7 +37,6 @@ import org.apache.juddi.v3.error.ErrorMessage; import org.apache.juddi.v3.error.FatalErrorException; import org.apache.juddi.v3.error.UnknownUserException; import org.apache.log4j.Logger; -import org.apache.log4j.helpers.Loader; /** * This is a simple implementation of jUDDI's Authenticator interface. The credential @@ -85,7 +85,7 @@ public class XMLDocAuthenticator implements Authenticator userTable = new Hashtable(); String usersFileName = getFilename(); log.info("Reading jUDDI Users File: " + usersFileName + "..."); - InputStream stream = Loader.getResource(usersFileName).openStream(); + InputStream stream = ClassUtil.getResource(usersFileName,this.getClass()).openStream(); JAXBContext jaxbContext=JAXBContext.newInstance(JuddiUsers.class); Unmarshaller unMarshaller = jaxbContext.createUnmarshaller(); JAXBElement element = unMarshaller.unmarshal(new StreamSource(stream),JuddiUsers.class); -- 1.7.3.1.msysgit.0