From f89c99bee37103772b4009fea14387fa92f9da98 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 08 Oct 2013 16:12:52 +0000
Subject: [PATCH] OPENDJ-346 Consider using java.util.ServiceLoader for loading extensions and requesting transport implementations
---
opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/StaticUtils.java | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/StaticUtils.java b/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/StaticUtils.java
index 1c5f81e..30f05e4 100644
--- a/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/StaticUtils.java
+++ b/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/StaticUtils.java
@@ -2264,15 +2264,17 @@
* <p>
* The provider is loaded using the {@code ServiceLoader} facility.
*
- * @param <P> type of provider
+ * @param <P>
+ * type of provider
* @param providerClass
- * class of provider
+ * class of provider
* @param requestedProvider
* name of provider to use, or {@code null} if no specific
* provider is requested.
* @param classLoader
* class loader to use to load the provider, or {@code null} to
- * use the default class loader.
+ * use the default class loader (the context class loader of the
+ * current thread).
* @return a provider
* @throws ProviderNotFoundException
* if no provider is available or if the provider requested
@@ -2280,8 +2282,12 @@
*/
public static <P extends Provider> P getProvider(final Class<P> providerClass, final String requestedProvider,
final ClassLoader classLoader) {
-
- ServiceLoader<P> loader = ServiceLoader.load(providerClass, classLoader);
+ ServiceLoader<P> loader = null;
+ if (classLoader == null) {
+ loader = ServiceLoader.load(providerClass);
+ } else {
+ loader = ServiceLoader.load(providerClass, classLoader);
+ }
StringBuilder providersFound = new StringBuilder();
for (P provider : loader) {
if (providersFound.length() > 0) {
--
Gitblit v1.10.0