X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fso%2Fclient%2FRestPropertiesLoader.java;fp=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fso%2Fclient%2FRestPropertiesLoader.java;h=efb50cf04bfc0c76a29fc1b0a5d2cc67bb0c8138;hb=f47919f1fe367b612fa9c96d34c59f01a541e882;hp=570b48ecb8af761aa1533211fdc5e3537bf01082;hpb=54452b80a1cf4d22ef750bc1377f8c1b05431d57;p=so.git diff --git a/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java index 570b48ecb8..efb50cf04b 100644 --- a/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java +++ b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java @@ -25,55 +25,57 @@ import java.util.ServiceLoader; public class RestPropertiesLoader { - /* required to make ServiceLoader thread safe */ - private static final ThreadLocal> services = new ThreadLocal>() { - @Override - protected ServiceLoader initialValue() { - return ServiceLoader.load(RestProperties.class); - } - }; - private RestPropertiesLoader() { - } - - private static class Helper { - private static final RestPropertiesLoader INSTANCE = new RestPropertiesLoader(); - } - - public static RestPropertiesLoader getInstance() { - return Helper.INSTANCE; - } - - public T getNewImpl(Class clazz) { - return this.getImpl(clazz, true); - } - public T getImpl(Class clazz) { - return this.getImpl(clazz, false); - } - - private T getImpl(Class clazz, boolean forceNewInstance) { - T result = null; - ServiceLoader loader = this.services.get(); - Iterator propertyImpls = loader.iterator(); - RestProperties item; - while (propertyImpls.hasNext()) { - item = propertyImpls.next(); - if (clazz.isAssignableFrom(item.getClass())) { - try { - if (forceNewInstance) { - result = (T)item.getClass().newInstance(); - } else { - result = (T)item; - } - } catch (InstantiationException | IllegalAccessException e) { - /* all spi implementations must provide a public - * no argument constructor - */ - - } - //break; - } - } - - return result; - } + /* required to make ServiceLoader thread safe */ + private static final ThreadLocal> services = + new ThreadLocal>() { + @Override + protected ServiceLoader initialValue() { + return ServiceLoader.load(RestProperties.class); + } + }; + + private RestPropertiesLoader() {} + + private static class Helper { + private static final RestPropertiesLoader INSTANCE = new RestPropertiesLoader(); + } + + public static RestPropertiesLoader getInstance() { + return Helper.INSTANCE; + } + + public T getNewImpl(Class clazz) { + return this.getImpl(clazz, true); + } + + public T getImpl(Class clazz) { + return this.getImpl(clazz, false); + } + + private T getImpl(Class clazz, boolean forceNewInstance) { + T result = null; + ServiceLoader loader = this.services.get(); + Iterator propertyImpls = loader.iterator(); + RestProperties item; + while (propertyImpls.hasNext()) { + item = propertyImpls.next(); + if (clazz.isAssignableFrom(item.getClass())) { + try { + if (forceNewInstance) { + result = (T) item.getClass().newInstance(); + } else { + result = (T) item; + } + } catch (InstantiationException | IllegalAccessException e) { + /* + * all spi implementations must provide a public no argument constructor + */ + + } + // break; + } + } + + return result; + } }