mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-04 03:55:28 -04:00
Alternative fix for #650: Allow usage in OSGi environment.
(cherry picked from commit f50178bc78af3d6b7f288914a1cea121330312b8)
This commit is contained in:
parent
966a9da45d
commit
a963e1c355
@ -45,6 +45,7 @@ import java.io.BufferedInputStream;
|
|||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
@ -175,15 +176,22 @@ public final class IIOUtil {
|
|||||||
* @param providerClassName name of the provider class.
|
* @param providerClassName name of the provider class.
|
||||||
* @param category provider category
|
* @param category provider category
|
||||||
*
|
*
|
||||||
* @return the provider instance, or {@code null}.
|
* @return the provider instance, or {@code null} if not found
|
||||||
*/
|
*/
|
||||||
public static <T> T lookupProviderByName(final ServiceRegistry registry, final String providerClassName, Class<T> category) {
|
public static <T> T lookupProviderByName(final ServiceRegistry registry, final String providerClassName, Class<T> category) {
|
||||||
try {
|
// NOTE: While more verbose, this is more OSGi-friendly than using
|
||||||
return category.cast(registry.getServiceProviderByClass(Class.forName(providerClassName)));
|
// registry.getServiceProviderByClass(Class.forName(providerClassName))
|
||||||
}
|
Iterator<T> providers = registry.getServiceProviders(category, true);
|
||||||
catch (ClassNotFoundException ignore) {
|
|
||||||
return null;
|
while (providers.hasNext()) {
|
||||||
|
T provider = providers.next();
|
||||||
|
|
||||||
|
if (provider.getClass().getName().equals(providerClassName)) {
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user