diff --git a/moneta-core/src/main/java/org/javamoney/moneta/internal/OSGIServiceProvider.java b/moneta-core/src/main/java/org/javamoney/moneta/internal/OSGIServiceProvider.java index 8a9137679..82f936385 100644 --- a/moneta-core/src/main/java/org/javamoney/moneta/internal/OSGIServiceProvider.java +++ b/moneta-core/src/main/java/org/javamoney/moneta/internal/OSGIServiceProvider.java @@ -17,6 +17,7 @@ import org.osgi.framework.*; +import javax.money.Monetary; import javax.money.spi.ServiceProvider; import java.net.URL; import java.util.*; @@ -97,7 +98,7 @@ public List getServices(Class serviceType) { LOG.log(Level.SEVERE, "could not create services of type: " + serviceType, e); } try{ - for(T service:ServiceLoader.load(serviceType)){ + for(T service:ServiceLoader.load(serviceType, Monetary.class.getClassLoader())){ services.add(service); } return services; diff --git a/moneta-core/src/main/java/org/javamoney/moneta/spi/PriorityAwareServiceProvider.java b/moneta-core/src/main/java/org/javamoney/moneta/spi/PriorityAwareServiceProvider.java index 71e07545a..962c0a6b1 100644 --- a/moneta-core/src/main/java/org/javamoney/moneta/spi/PriorityAwareServiceProvider.java +++ b/moneta-core/src/main/java/org/javamoney/moneta/spi/PriorityAwareServiceProvider.java @@ -16,6 +16,7 @@ package org.javamoney.moneta.spi; import javax.annotation.Priority; +import javax.money.Monetary; import javax.money.spi.ServiceProvider; import java.util.ArrayList; import java.util.Collections; @@ -95,7 +96,7 @@ public static int compareServices(Object o1, Object o2) { private List loadServices(final Class serviceType) { List services = new ArrayList<>(); try { - for (T t : ServiceLoader.load(serviceType)) { + for (T t : ServiceLoader.load(serviceType, Monetary.class.getClassLoader())) { services.add(t); } services.sort(PriorityAwareServiceProvider::compareServices);