X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fgeneral%2FBeanKernel.java;h=36d2e9b286355873a81ca3e77133e4366d5f220f;hb=ddd261f331280640c5b53c7128230b629ebcd268;hp=d05eef3dd6b507c8706a5d2dd865b3de4edc06c6;hpb=92e23e5ecf9614f2ab770a8cdedc0b21ddf1e127;p=utils diff --git a/support/general/src/main/java/org/wamblee/general/BeanKernel.java b/support/general/src/main/java/org/wamblee/general/BeanKernel.java index d05eef3d..36d2e9b2 100644 --- a/support/general/src/main/java/org/wamblee/general/BeanKernel.java +++ b/support/general/src/main/java/org/wamblee/general/BeanKernel.java @@ -1,12 +1,12 @@ /* * Copyright 2005 the original author or authors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,24 +15,29 @@ */ package org.wamblee.general; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.wamblee.io.ClassPathResource; import org.wamblee.io.InputResource; +import java.io.IOException; +import java.io.InputStream; + +import java.util.Properties; + + /** * 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. + * 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 { - + /** + * DOCUMENT ME! + */ private static final Log LOG = LogFactory.getLog(BeanKernel.class); /** @@ -41,8 +46,8 @@ public final class BeanKernel { private static final String BEAN_KERNEL_PROP_FILE = "org.wamblee.beanfactory.properties"; /** - * Name of the property to define the name of the bean factory class to use. - * THis class must have a public default constructor. + * Name of the property to define the name of the bean factory + * class to use. THis class must have a public default constructor. */ private static final String BEAN_FACTORY_CLASS = "org.wamblee.beanfactory.class"; @@ -51,20 +56,19 @@ public final 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. - * - * @param aOverride - * Override bean factory. + * Overrides the default mechanism for looking up the bean factory + * by specifying it yourself. + * + * @param aOverride Override bean factory. */ public static void overrideBeanFactory(BeanFactory aOverride) { BEAN_FACTORY = aOverride; @@ -72,7 +76,7 @@ public final class BeanKernel { /** * Gets the bean factory. - * + * * @return Bean factory. */ public static BeanFactory getBeanFactory() { @@ -81,32 +85,40 @@ public final class BeanKernel { BEAN_FACTORY = lookupBeanFactory(BEAN_KERNEL_PROP_FILE); } } + return BEAN_FACTORY; } /** * Lookup the bean factory based on the properties file. - * + * + * @param aPropertyFilename DOCUMENT ME! + * * @return Bean factory. + * + * @throws BeanFactoryException DOCUMENT ME! */ static BeanFactory lookupBeanFactory(String aPropertyFilename) { InputResource resource = new ClassPathResource(aPropertyFilename); - InputStream is; + InputStream is; + try { - is = resource.getInputStream(); + is = resource.getInputStream(); } catch (IOException e) { - throw new BeanFactoryException("Cannot open resource " + resource, - e); + throw new BeanFactoryException("Cannot open resource " + resource, e); } + try { Properties props = new Properties(); props.load(is); - String className = props.getProperty(BEAN_FACTORY_CLASS); - Class beanFactory = Class.forName(className); + + String className = props.getProperty(BEAN_FACTORY_CLASS); + Class beanFactory = Class.forName(className); + return (BeanFactory) beanFactory.newInstance(); } catch (Exception e) { throw new BeanFactoryException("Cannot read from resource " - + resource, e); + + resource, e); } finally { try { is.close();