(no commit message)
[utils] / support / src / org / wamblee / general / BeanKernel.java
index d140de3d48a8f911fee5c9599d3bbf3e8047ecd0..5f32f68756fd5a0ceaa4f8d83eeb34a7329bcbd5 100644 (file)
@@ -25,7 +25,11 @@ 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 final class BeanKernel {
 
@@ -46,12 +50,12 @@ public final class BeanKernel {
      * Cached bean factory.
      */
     private static BeanFactory BEAN_FACTORY;
-    
+
     /**
      * Disabled constructor.
-     *
+     * 
      */
-    private BeanKernel() { 
+    private BeanKernel() {
         // Empty
     }
 
@@ -67,8 +71,9 @@ public final class BeanKernel {
     }
 
     /**
-     * Gets the bean factory. 
-     * @return Bean factory. 
+     * Gets the bean factory.
+     * 
+     * @return Bean factory.
      */
     public static BeanFactory getBeanFactory() {
         synchronized (BeanFactory.class) {
@@ -84,7 +89,7 @@ public final class BeanKernel {
      * 
      * @return Bean factory.
      */
-    private static BeanFactory lookupBeanFactory() {
+    static BeanFactory lookupBeanFactory() {
         InputResource resource = new ClassPathResource(BEAN_KERNEL_PROP_FILE);
         InputStream is;
         try {
@@ -95,7 +100,7 @@ public final 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();