Author: ddewolf Date: Fri Nov 3 11:57:27 2006 New Revision: 470971 URL: http://svn.apache.org/viewvc?view=rev&rev=470971 Log: Code cleanup
Added: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java (with props) struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp (with props) Removed: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryConfig.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/RequestUtils.java Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletHeaderValuesMap.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactory.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/PreparerFactory.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/DefinitionTag.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/GetAsStringTag.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/factory/TilesContainerFactoryTest.java struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/preparer/BasicPreparerFactoryTest.java struts/sandbox/trunk/tiles/tiles-test/src/main/resources/org/apache/tiles/classpath-defs.xml Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java Fri Nov 3 11:57:27 2006 @@ -57,25 +57,10 @@ public void include(String path) throws TilesException { try { - include(path, false); + JspUtil.doInclude(pageContext, path, false); } catch (JspException e) { throw new TilesException(e); } } - - /** - * Do an include of specified page using PageContext.include(). - * <p/> - * This method is used by the Tiles package when an include is required. - * The Tiles package can use indifferently any form of this method. - * - * @param path Uri or Definition name to forward. - * @param flush If the writer should be flushed before the include - * @throws JspException if the underlying include fails - */ - public void include(String path, boolean flush) throws JspException { - JspUtil.doInclude(pageContext, path, flush); - } - } Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletHeaderValuesMap.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletHeaderValuesMap.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletHeaderValuesMap.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletHeaderValuesMap.java Fri Nov 3 11:57:27 2006 @@ -97,12 +97,12 @@ public Object get(Object key) { - List list = new ArrayList(); - Enumeration values = request.getHeaders(key(key)); + List<String> list = new ArrayList<String>(); + Enumeration<String> values = request.getHeaders(key(key)); while (values.hasMoreElements()) { - list.add((String) values.nextElement()); + list.add(values.nextElement()); } - return (((String[]) list.toArray(new String[list.size()]))); + return ((list.toArray(new String[list.size()]))); } @@ -160,9 +160,9 @@ List list1 = new ArrayList(); Enumeration values = request.getHeaders(key); while (values.hasMoreElements()) { - list1.add((String) values.nextElement()); + list1.add(values.nextElement()); } - list.add(((String[]) list1.toArray(new String[list1.size()]))); + list.add((list1.toArray(new String[list1.size()]))); } return (list); } Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactory.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactory.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactory.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactory.java Fri Nov 3 11:57:27 2006 @@ -21,6 +21,7 @@ package org.apache.tiles.definition; import org.apache.tiles.context.TilesRequestContext; +import org.apache.tiles.TilesException; import java.util.Map; @@ -57,7 +58,7 @@ * @param params The Map of configuration properties. * @throws DefinitionsFactoryException if an initialization error occurs. */ - public void init(Map<String, String> params) throws DefinitionsFactoryException; + public void init(Map<String, String> params) throws DefinitionsFactoryException, TilesException; /** * Returns a ComponentDefinition object that matches the given name and Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java Fri Nov 3 11:57:27 2006 @@ -23,7 +23,8 @@ import org.apache.commons.logging.LogFactory; import org.apache.tiles.context.TilesRequestContext; import org.apache.tiles.definition.digester.DigesterDefinitionsReader; -import org.apache.tiles.util.RequestUtils; +import org.apache.tiles.util.ClassUtil; +import org.apache.tiles.TilesException; import java.io.FileNotFoundException; import java.io.IOException; @@ -90,12 +91,12 @@ * @param params The Map of configuration properties. * @throws DefinitionsFactoryException if an initialization error occurs. */ - public void init(Map<String, String> params) throws DefinitionsFactoryException { + public void init(Map<String, String> params) throws TilesException { String readerClassName = params.get(DefinitionsFactory.READER_IMPL_PROPERTY); if (readerClassName != null) { - createReader(readerClassName); + reader = (DefinitionsReader) ClassUtil.instantiate(readerClassName); } else { reader = new DigesterDefinitionsReader(); } @@ -364,22 +365,5 @@ return true; } return status; - } - - private void createReader(String readerClassName) throws DefinitionsFactoryException { - try { - Class readerClass = - RequestUtils.applicationClass(readerClassName); - reader = (DefinitionsReader) readerClass.newInstance(); - } catch (ClassNotFoundException e) { - throw new DefinitionsFactoryException( - "Cannot find reader class '" + readerClassName + "'.", e); - } catch (InstantiationException e) { - throw new DefinitionsFactoryException( - "Unable to instantiate reader class '" + readerClassName + "'.", e); - } catch (IllegalAccessException e) { - throw new DefinitionsFactoryException( - "Unable to access reader class '" + readerClassName + "'.", e); - } } } Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java Fri Nov 3 11:57:27 2006 @@ -144,7 +144,7 @@ return null; } - InputStream input = null; + InputStream input; try { input = (InputStream) source; } catch (ClassCastException e) { @@ -185,7 +185,7 @@ if (params != null) { String value = (String) params.get(PARSER_VALIDATE_PARAMETER_NAME); if (value != null) { - digester.setValidating(Boolean.valueOf(value).booleanValue()); + digester.setValidating(Boolean.valueOf(value)); } } Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java Fri Nov 3 11:57:27 2006 @@ -22,6 +22,7 @@ import org.apache.tiles.TilesApplicationContext; import org.apache.tiles.TilesContainer; import org.apache.tiles.TilesException; +import org.apache.tiles.util.ClassUtil; import org.apache.tiles.preparer.BasicPreparerFactory; import org.apache.tiles.preparer.PreparerFactory; import org.apache.tiles.context.BasicTilesContextFactory; @@ -141,17 +142,7 @@ public static Object createFactory(Object context, String initParameterName) throws TilesException { String factoryName = resolveFactoryName(context, initParameterName); - try { - Class factoryClass = Class.forName(factoryName); - return factoryClass.newInstance(); - } catch (ClassNotFoundException e) { - throw new TilesException("Unable to resolve factory class: '" + factoryName + "'"); - } catch (IllegalAccessException e) { - throw new TilesException("Unable to access factory class: '" + factoryName + "'"); - } catch (InstantiationException e) { - throw new TilesException("Unable to instantiate factory class: '" - + factoryName + "'. Make sure that this class has a default constructor"); - } + return ClassUtil.instantiate(factoryName); } public static String resolveFactoryName(Object context, String parameterName) Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java Fri Nov 3 11:57:27 2006 @@ -21,8 +21,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.tiles.TilesException; import org.apache.tiles.context.TilesRequestContext; -import org.apache.tiles.util.RequestUtils; +import org.apache.tiles.util.ClassUtil; import java.util.HashMap; import java.util.Map; @@ -32,8 +33,8 @@ * This factory provides no contextual configuration. It * simply instantiates the named preparerInstance and returns it. * - * @since Tiles 2.0 * @version $Rev$ + * @since Tiles 2.0 */ public class BasicPreparerFactory implements PreparerFactory { @@ -52,12 +53,12 @@ * expects all names to be qualified class names. * * @param name the named preparerInstance - * @param context - * @return + * @param context current context + * @return ViewPreparer instance * @throws NoSuchPreparerException */ public ViewPreparer getPreparer(String name, TilesRequestContext context) - throws PreparerException { + throws TilesException { if (!preparers.containsKey(name)) { preparers.put(name, createPreparer(name)); @@ -66,36 +67,15 @@ return preparers.get(name); } - private ViewPreparer createPreparer(String name) throws PreparerException { + private ViewPreparer createPreparer(String name) throws TilesException { if (LOG.isDebugEnabled()) { LOG.debug("Creating ViewPreparer '" + name + "' . . ."); } - try { - Class requestedClass = RequestUtils.applicationClass(name); - Object instance = requestedClass.newInstance(); - LOG.debug("ViewPreparer created successfully"); - return (ViewPreparer) instance; - - } catch (java.lang.ClassNotFoundException ex) { - // upon class not found, we should return null; - // the container will determine whether or not to throw - // an exception. - LOG.warn("Preparer '"+name+"' not found."); - return null; - } catch (java.lang.IllegalAccessException ex) { - throw new PreparerException( - "Error - Illegal class access :" + ex.getMessage(), ex); - - } catch (java.lang.ClassCastException ex) { - throw new PreparerException( - "ViewPreparer of class '" + name - + "' should implements 'ViewPreparer' or extends 'Action'"); - } catch (InstantiationException e) { - throw new PreparerException( - "Error - Unable to instantiate ViewPreparer '" - + name + "'. Does it have a default constructor?", e); - } + Object instance = ClassUtil.instantiate(name, true); + LOG.debug("ViewPreparer created successfully"); + return (ViewPreparer) instance; + } } Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/PreparerFactory.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/PreparerFactory.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/PreparerFactory.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/preparer/PreparerFactory.java Fri Nov 3 11:57:27 2006 @@ -20,6 +20,7 @@ package org.apache.tiles.preparer; import org.apache.tiles.context.TilesRequestContext; +import org.apache.tiles.TilesException; /** * <p> @@ -48,7 +49,7 @@ * @throws NoSuchPreparerException when the named preparerInstance can not be found. */ ViewPreparer getPreparer(String name, TilesRequestContext context) - throws PreparerException; + throws PreparerException, TilesException; } Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java Fri Nov 3 11:57:27 2006 @@ -156,7 +156,7 @@ * Set flush. Method added for compatibility with JSP1.1 */ public void setFlush(String flush) { - this.flush = (Boolean.valueOf(flush).booleanValue()); + this.flush = (Boolean.valueOf(flush)); } /** @@ -395,7 +395,7 @@ this.attributes = new HashMap<String, ComponentAttribute>(); if (attributes != null) { for (Map.Entry<String, Object> entry : attributes.entrySet()) { - ComponentAttribute attr = null; + ComponentAttribute attr; if (entry.getValue() instanceof ComponentAttribute) { attr = (ComponentAttribute) entry.getValue(); } else { Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/DefinitionTag.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/DefinitionTag.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/DefinitionTag.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/DefinitionTag.java Fri Nov 3 11:57:27 2006 @@ -104,7 +104,7 @@ // If role is set, add it in attribute definition if any. // If no attribute definition, create untyped one and set role. Object attributeValue = nestedTag.getRealValue(); - ComponentAttribute def = null; + ComponentAttribute def; if (attributeValue != null && attributeValue instanceof ComponentAttribute) { Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/GetAsStringTag.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/GetAsStringTag.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/GetAsStringTag.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/GetAsStringTag.java Fri Nov 3 11:57:27 2006 @@ -161,7 +161,7 @@ Object value = compContext.getAttribute(attribute); if (value == null) { // no value : throw error or fail silently according to ignore - if (isErrorIgnored == false) + if (!isErrorIgnored) throw new JspException("Error - tag.getAsString : attribute '" + attribute + "' not found in context. Check tag syntax"); else return EVAL_PAGE; Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java Fri Nov 3 11:57:27 2006 @@ -30,9 +30,6 @@ public class InitDefinitionsTag extends TagSupport implements ComponentConstants { - private String filename = null; - private String classname = null; - /** * Default constructor. */ @@ -46,21 +43,18 @@ public void release() { super.release(); - filename = null; } /** * Set file. */ public void setFile(String name) { - this.filename = name; } /** * Set classname. */ public void setClassname(String classname) { - this.classname = classname; } /** Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java Fri Nov 3 11:57:27 2006 @@ -23,6 +23,8 @@ import org.apache.tiles.ComponentContext; import org.apache.tiles.TilesApplicationContext; import org.apache.tiles.TilesContainer; +import org.apache.tiles.ComponentAttribute; +import org.apache.tiles.definition.ComponentDefinition; import org.apache.tiles.access.TilesAccess; import org.apache.tiles.taglib.ComponentConstants; @@ -50,17 +52,17 @@ * Maps lowercase JSP scope names to their PageContext integer constant * values. */ - private static final Map scopes = new HashMap(); + private static final Map<String, Integer> scopes = new HashMap<String, Integer>(); /** * Initialize the scope names map and the encode variable with the * Java 1.4 method if available. */ static { - scopes.put("page", new Integer(PageContext.PAGE_SCOPE)); - scopes.put("request", new Integer(PageContext.REQUEST_SCOPE)); - scopes.put("session", new Integer(PageContext.SESSION_SCOPE)); - scopes.put("application", new Integer(PageContext.APPLICATION_SCOPE)); + scopes.put("page", PageContext.PAGE_SCOPE); + scopes.put("request", PageContext.REQUEST_SCOPE); + scopes.put("session", PageContext.SESSION_SCOPE); + scopes.put("application", PageContext.APPLICATION_SCOPE); } public static TilesApplicationContext getTilesContext(ServletContext context) { @@ -104,14 +106,14 @@ * @throws JspException if the scopeName is not a valid name. */ public static int getScope(String scopeName) throws JspException { - Integer scope = (Integer) scopes.get(scopeName.toLowerCase()); + Integer scope = scopes.get(scopeName.toLowerCase()); if (scope == null) { //throw new JspException(messages.getMessage("lookup.scope", scope)); throw new JspException("Unable to retrieve the scope " + scopeName); } - return scope.intValue(); + return scope; } @@ -179,7 +181,7 @@ ComponentContext compContext = container.getComponentContext(pageContext); if (compContext != null) { - Object attribute = compContext.findAttribute(beanName, pageContext); + ComponentAttribute attribute = compContext.findAttribute(beanName, pageContext); if (attribute != null) { return attribute; } @@ -291,7 +293,7 @@ public static void setAttribute( PageContext pageContext, String name, - Object value, + ComponentDefinition value, String scope) throws JspException { Added: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java?view=auto&rev=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java (added) +++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java Fri Nov 3 11:57:27 2006 @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + * + */ +package org.apache.tiles.util; + +import org.apache.tiles.TilesException; + + +public class ClassUtil { + + public static Object instantiate(String className) throws TilesException { + return instantiate(className, false); + } + + public static Object instantiate(String className, boolean returnNull) + throws TilesException { + ClassLoader original = Thread.currentThread().getContextClassLoader(); + if (original == null) { + Thread.currentThread().setContextClassLoader(ClassUtil.class.getClassLoader()); + } + try { + Class namedClass = Class.forName(className); + return namedClass.newInstance(); + } catch (ClassNotFoundException e) { + if(returnNull) { + return null; + } + throw new TilesException("Unable to resolve factory class: '" + className + "'"); + } catch (IllegalAccessException e) { + throw new TilesException("Unable to access factory class: '" + className + "'"); + } catch (InstantiationException e) { + throw new TilesException("Unable to instantiate factory class: '" + + className + "'. Make sure that this class has a default constructor"); + } finally { + Thread.currentThread().setContextClassLoader(original); + } + } + +} Propchange: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/util/ClassUtil.java ------------------------------------------------------------------------------ svn:keywords = Id Author Date Rev Modified: struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/factory/TilesContainerFactoryTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/factory/TilesContainerFactoryTest.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/factory/TilesContainerFactoryTest.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/factory/TilesContainerFactoryTest.java Fri Nov 3 11:57:27 2006 @@ -116,7 +116,7 @@ assertEquals("twoValue", map.get("two")); } - static class TestFactory extends TilesContainerFactory { + public static class TestFactory extends TilesContainerFactory { } } Modified: struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/preparer/BasicPreparerFactoryTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/preparer/BasicPreparerFactoryTest.java?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/preparer/BasicPreparerFactoryTest.java (original) +++ struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/preparer/BasicPreparerFactoryTest.java Fri Nov 3 11:57:27 2006 @@ -22,6 +22,7 @@ import junit.framework.TestCase; import org.apache.tiles.preparer.ViewPreparerSupport; import org.apache.tiles.preparer.ViewPreparer; +import org.apache.tiles.TilesException; public class BasicPreparerFactoryTest extends TestCase { @@ -31,7 +32,7 @@ factory = new BasicPreparerFactory(); } - public void testGetPreparer() throws PreparerException { + public void testGetPreparer() throws TilesException { String name = ViewPreparerSupport.class.getName(); ViewPreparer p = factory.getPreparer(name, null); assertNotNull(p); Modified: struts/sandbox/trunk/tiles/tiles-test/src/main/resources/org/apache/tiles/classpath-defs.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-test/src/main/resources/org/apache/tiles/classpath-defs.xml?view=diff&rev=470971&r1=470970&r2=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-test/src/main/resources/org/apache/tiles/classpath-defs.xml (original) +++ struts/sandbox/trunk/tiles/tiles-test/src/main/resources/org/apache/tiles/classpath-defs.xml Fri Nov 3 11:57:27 2006 @@ -10,6 +10,6 @@ <definition name="classpath.definition" template="/layout.jsp"> <put name="title" value="This is the title."/> <put name="header" value="/header.jsp"/> - <put name="body" value="/body.jsp"/> + <put name="body" value="/classpath.jsp"/> </definition> </tiles-definitions> Added: struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp?view=auto&rev=470971 ============================================================================== --- struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp (added) +++ struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp Fri Nov 3 11:57:27 2006 @@ -0,0 +1 @@ +<div align="center"><b><i>This tile was loaded from the classpath</i></b></div> \ No newline at end of file Propchange: struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/classpath.jsp ------------------------------------------------------------------------------ svn:keywords = Id Author Date Rev