Author: ekoneil Date: Tue Dec 7 20:46:56 2004 New Revision: 111211 URL: http://svn.apache.org/viewcvs?view=rev&rev=111211 Log: Fixup the duplication of the ConfigUtil class in the netui/test/src/junitTests package.
This was duplicated because the tests need to be able to re-load the test file. This is significantly cleaner now. BB: self DRT: NetUI server pass Added: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/config/TestConfigUtil.java (contents, props changed) Removed: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/util/config/ConfigUtil.java Modified: incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java Modified: incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java?view=diff&rev=111211&p1=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java&r1=111210&p2=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java&r2=111211 ============================================================================== --- incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java (original) +++ incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/config/ConfigUtil.java Tue Dec 7 20:46:56 2004 @@ -17,18 +17,14 @@ */ package org.apache.beehive.netui.util.config; -// java imports import java.io.InputStream; import java.io.IOException; import java.util.ArrayList; -// internal imports -import org.apache.beehive.netui.util.Bundle; import org.apache.beehive.netui.util.config.bean.NetuiConfigDocument; import org.apache.beehive.netui.util.config.bean.NetuiConfigDocument.NetuiConfig; import org.apache.beehive.netui.util.logging.Logger; -// external imports import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlOptions; import org.apache.xmlbeans.XmlError; @@ -48,18 +44,20 @@ * <br/> * </p> */ -public final class ConfigUtil +public class ConfigUtil { // @todo: need to change NetuiConfigDocument.NetuiConfig to NetUIConfig - // @todo: need to provide a read-only implementation so that users can't edit - // the config file on the fly + // @todo: need to provide a read-only implementation so that users can't edit the config file on the fly - private static final Logger _logger = Logger.getInstance(ConfigUtil.class); + private static final Logger LOGGER = Logger.getInstance(ConfigUtil.class); private static final String DEFAULT_CONFIG = "org/apache/beehive/netui/util/config/netui-config-default.xml"; private static NetuiConfigDocument _config = null; + /* do not construct */ + protected ConfigUtil() {} + /** * <p> * Initialize the NetUI configuration data. @@ -78,6 +76,25 @@ public static final void init(InputStream is) throws ConfigInitializationException { + if(_config != null) + throw new ConfigInitializationException("Config initialization already completed; unable to reload the NetUI config file."); + + internalInit(is); + } + + /** + * Internal method used to re-initialize the static class member that holds the + * ConfigDocument. Note, this method does <b>no</b> checks to ensure that an + * existing document is being overwritten. The behavior of ConfigUtil clients + * is undefined if their initial configuration is re-loaded. + * + * @param is The [EMAIL PROTECTED] java.io.InputStream} that contains the config document to load + * @throws ConfigInitializationException thrown when an error occurs loading the + * configuration file. + */ + protected static final void internalInit(InputStream is) + throws ConfigInitializationException { + // when initialized with a null InputStream, revert to using a default, barebones config file if(is == null) { @@ -88,8 +105,9 @@ throw new ConfigInitializationException("The NetUI runtime could not find the default config file. " + "The webapp may not function properly."); - if(_logger.isInfoEnabled()) _logger.info("Loading the default NetUI config file. The runtime will be configured " + - "with a set of minimum parameters."); + if(LOGGER.isInfoEnabled()) + LOGGER.info("Loading the default NetUI config file. The runtime will be configured " + + "with a set of minimum parameters."); } if(_config == null) @@ -108,8 +126,7 @@ throw new ConfigInitializationException("Unable load the NetUI config file. Cause: " + ex, ex); } } - else throw new ConfigInitializationException("Config initialization already completed; unable to reload the NetUI config file."); - + assert _config != null; // Validate the document. @@ -117,7 +134,7 @@ ArrayList errorList = new ArrayList(); validateOptions.setErrorListener(errorList); boolean isValid = _config.validate(validateOptions); - + // Throw an exception if the XML is invalid. if (!isValid) { @@ -136,31 +153,32 @@ } throw new ConfigInitializationException(msg.toString()); - } + } } /** - * <p> - * Get the NetUI configuration object. - * <br/> - * <br/> - * </p> + * Get the NetUI configuration object. * * @return a configuration bean that contains data * parsed from the netui-config.xml file. */ public static NetuiConfig getConfig() { - if(_config != null) + if(_config != null) { return _config.getNetuiConfig(); - // If the config file wasn't initialized, attempt to initialize a configuration - // from the default config file contained in the utility JAR. - else + } + /* + If the config file wasn't initialized, attempt to initialize a configuration + from the default config file contained in the utility JAR. + */ + else { - // This hopefully never happens and would only occur if the default config file isn't - // found in the util JAR. - if(_logger.isErrorEnabled()) _logger.error("An error occurred parsing the default config file. " + - "The NetUI runtime is not properly configured."); + /* + This hopefully never happens and would only occur if the default config file isn't found in the util JAR. + */ + if(LOGGER.isErrorEnabled()) + LOGGER.error("An error occurred parsing the default config file. " + + "The NetUI runtime is not properly configured."); throw new IllegalStateException("The NetUI runtime could not find the default config file. The webapp may not function properly."); } Modified: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java?view=diff&rev=111211&p1=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java&r1=111210&p2=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java&r2=111211 ============================================================================== --- incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java (original) +++ incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/databinding/expression/IndexedNameTest.java Tue Dec 7 20:46:56 2004 @@ -18,6 +18,7 @@ package org.apache.beehive.netui.test.databinding.expression; // java imports +import java.io.InputStream; import javax.servlet.jsp.tagext.Tag; // internal imports @@ -28,6 +29,8 @@ import org.apache.beehive.netui.tags.naming.IndexedNameInterceptor; import org.apache.beehive.netui.util.logging.Logger; +import org.apache.beehive.netui.util.config.ConfigInitializationException; +import org.apache.beehive.netui.test.util.config.TestConfigUtil; // external imports import junit.framework.Test; @@ -488,6 +491,9 @@ junit.textui.TestRunner.run(suite()); } - protected void setUp() {} + protected void setUp() { + TestConfigUtil.testInit(); + } + protected void tearDown() {} } Modified: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java?view=diff&rev=111211&p1=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java&r1=111210&p2=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java&r2=111211 ============================================================================== --- incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java (original) +++ incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/script/AbstractExpressionTest.java Tue Dec 7 20:46:56 2004 @@ -17,6 +17,7 @@ */ package org.apache.beehive.netui.test.script; +import java.io.InputStream; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; @@ -29,6 +30,9 @@ import org.apache.beehive.netui.test.beans.SimpleTypeActionForm; import org.apache.beehive.netui.test.beans.ComplexTypeActionForm; import org.apache.beehive.netui.test.servlet.ServletFactory; +import org.apache.beehive.netui.test.util.config.TestConfigUtil; +import org.apache.beehive.netui.util.config.ConfigUtil; +import org.apache.beehive.netui.util.config.ConfigInitializationException; import junit.framework.Test; import junit.framework.TestCase; @@ -39,6 +43,7 @@ public abstract class AbstractExpressionTest extends TestCase { + protected static final int COMPLEX_FORM = 1; protected static final int SIMPLE_FORM = 2; @@ -108,7 +113,7 @@ useForm(SIMPLE_FORM); - org.apache.beehive.netui.util.config.ConfigUtil.loadDefault(); + TestConfigUtil.testInit(); } protected void tearDown() { Added: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/config/TestConfigUtil.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/config/TestConfigUtil.java?view=auto&rev=111211 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/config/TestConfigUtil.java Tue Dec 7 20:46:56 2004 @@ -0,0 +1,54 @@ +/* + * Copyright 2004 The Apache Software Foundation. + * + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * $Header:$ + */ +package org.apache.beehive.netui.test.util.config; + +import java.io.InputStream; + +import org.apache.beehive.netui.util.config.ConfigUtil; +import org.apache.beehive.netui.util.config.ConfigInitializationException; + +/** + * + */ +public class TestConfigUtil + extends ConfigUtil { + + private static final String DEFAULT_CONFIG = "WEB-INF/netui-config.xml"; + + public static final void testInit(InputStream is) + throws ConfigInitializationException { + internalInit(is); + } + + public static final void testInit() { + + try { + InputStream is = TestConfigUtil.class.getClassLoader().getResourceAsStream(DEFAULT_CONFIG); + testInit(is); + } + catch(ConfigInitializationException cie) { + /* + sometimes bad form to do this, but in the default case for testing, + it's convenient to just bail with a runtime exception to just + fail the test + */ + + throw new IllegalStateException("Caught exception initializing the default config file \"" + DEFAULT_CONFIG + "\"", cie); + } + } +} Modified: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java?view=diff&rev=111211&p1=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java&r1=111210&p2=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java&r2=111211 ============================================================================== --- incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java (original) +++ incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/util/type/TypeUtilsTest.java Tue Dec 7 20:46:56 2004 @@ -24,10 +24,13 @@ import java.sql.Timestamp; import java.util.Date; import java.util.Locale; +import java.io.InputStream; // internal imports import org.apache.beehive.netui.util.logging.Logger; import org.apache.beehive.netui.util.type.TypeUtils; +import org.apache.beehive.netui.util.config.ConfigInitializationException; +import org.apache.beehive.netui.test.util.config.TestConfigUtil; // external imports import junit.framework.Test; @@ -135,7 +138,8 @@ Class type = (Class)_tests[i][1]; boolean valid = ((Boolean)_tests[i][2]).booleanValue(); - if(_logger.isDebugEnabled()) _logger.debug("tests[" + i + "]: convert \"" + value + "\" to type \"" + type + "\""); + if(_logger.isDebugEnabled()) + _logger.debug("tests[" + i + "]: convert \"" + value + "\" to type \"" + type + "\""); Object result = null; try @@ -148,7 +152,8 @@ } catch(Exception e) { - if(!valid) continue; + if(!valid) + continue; else if(valid) throw new TestFailedException("The test case [" + i + "] failed because an illegal value \"" + value + "\" was accepted in converting to type \"" + type + "\""); @@ -215,6 +220,9 @@ junit.textui.TestRunner.run(suite()); } - protected void setUp() {} + protected void setUp() { + TestConfigUtil.testInit(); + } + protected void tearDown() {} } Deleted: /incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/util/config/ConfigUtil.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/util/config/ConfigUtil.java?view=auto&rev=111210 ==============================================================================
