/* * Hibernate Validator, declare and validate application constraints * * License: Apache License, Version 2.0 * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>. */ package com.example.money; import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; import javax.money.spi.ServiceProvider; /** * A javax.money {@link ServiceProvider} using a given class loader. * * @author Guillaume Smet */ public class ExternalClassLoaderJavaxMoneyServiceProvider implements ServiceProvider { private final ClassLoader classLoader; public ExternalClassLoaderJavaxMoneyServiceProvider(ClassLoader externalClassLoader) { this.classLoader = externalClassLoader; } @Override public int getPriority() { return 0; } @Override public <T> List<T> getServices(final Class<T> serviceType) { List<T> services = new ArrayList<>(); for ( T service : ServiceLoader.load( serviceType, classLoader ) ) { services.add( service ); } return services; } }