X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Finject%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Finject%2FInjectorFactoryBuilder.java;h=13db8412d886a54474b808aa329ff69792aa7327;hb=7723e6b4dee1d423bf6e52fdbf58f89c18ce5720;hp=d8190919db6a0ca2f2e0163b541521b3edf55a04;hpb=26f08d01bde39cd0db85f956e99aaaca3a268266;p=utils diff --git a/support/inject/src/main/java/org/wamblee/inject/InjectorFactoryBuilder.java b/support/inject/src/main/java/org/wamblee/inject/InjectorFactoryBuilder.java index d8190919..13db8412 100644 --- a/support/inject/src/main/java/org/wamblee/inject/InjectorFactoryBuilder.java +++ b/support/inject/src/main/java/org/wamblee/inject/InjectorFactoryBuilder.java @@ -26,13 +26,35 @@ import java.util.ServiceLoader; */ public class InjectorFactoryBuilder { + private static InjectorFactory FACTORY; + + /** + * Sets the injector factory. This is useful for testing. + * @param aFactory Factory to use. + */ + public static void setInjectorFactory(InjectorFactory aFactory) { + FACTORY = aFactory; + } + /** - * Gets the injector factory by using the first one found using - * {@link ServiceLoader}. + * Gets the injector factory by using the first one found using + * {@link ServiceLoader}. * - * @return InjectorFactory. + * @return InjectorFactory. */ public static InjectorFactory getInjectorFactory() { + if (FACTORY == null) { + FACTORY = findInjectorFactory(); + } + return FACTORY; + } + + /** + * Finds the injector factory musing ServiceLoader + * + * @return InjectorFactory. + */ + private static InjectorFactory findInjectorFactory() { ServiceLoader factories = ServiceLoader .load(InjectorFactory.class); try {