X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fsrc%2Forg%2Fwamblee%2Fgeneral%2FBeanKernel.java;h=5f32f68756fd5a0ceaa4f8d83eeb34a7329bcbd5;hb=53f6ff39d6e9f16d2a2d2fe7958013bad4c89172;hp=fa48fb9719bd6458d8e30976ddb69dedf65e6c79;hpb=caa126385642ffc57478e928ab871bc09c53e993;p=utils diff --git a/support/src/org/wamblee/general/BeanKernel.java b/support/src/org/wamblee/general/BeanKernel.java index fa48fb97..5f32f687 100644 --- a/support/src/org/wamblee/general/BeanKernel.java +++ b/support/src/org/wamblee/general/BeanKernel.java @@ -25,9 +25,13 @@ import org.wamblee.io.ClassPathResource; import org.wamblee.io.InputResource; /** - * The standard means to obtain the bean factory. + * The standard means to obtain the bean factory. This works by reading a + * property {@value #BEAN_FACTORY_CLASS} from a property file named + * {@value #BEAN_KERNEL_PROP_FILE} from the class path. This property identifies + * the bean factory implementation to use. The configured bean factory must have + * a no-arg constructor. */ -public class BeanKernel { +public final class BeanKernel { private static final Log LOG = LogFactory.getLog(BeanKernel.class); @@ -47,6 +51,14 @@ public class BeanKernel { */ private static BeanFactory BEAN_FACTORY; + /** + * Disabled constructor. + * + */ + private BeanKernel() { + // Empty + } + /** * Overrides the default mechanism for looking up the bean factory by * specifying it yourself. @@ -59,8 +71,9 @@ public class BeanKernel { } /** - * Gets the bean factory. - * @return Bean factory. + * Gets the bean factory. + * + * @return Bean factory. */ public static BeanFactory getBeanFactory() { synchronized (BeanFactory.class) { @@ -76,7 +89,7 @@ public class BeanKernel { * * @return Bean factory. */ - private static BeanFactory lookupBeanFactory() { + static BeanFactory lookupBeanFactory() { InputResource resource = new ClassPathResource(BEAN_KERNEL_PROP_FILE); InputStream is; try { @@ -87,7 +100,7 @@ public class BeanKernel { } try { Properties props = new Properties(); - props.load(resource.getInputStream()); + props.load(is); String className = props.getProperty(BEAN_FACTORY_CLASS); Class beanFactory = Class.forName(className); return (BeanFactory) beanFactory.newInstance();