You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by dd...@apache.org on 2006/11/03 20:57:28 UTC

svn commit: r470971 - in /struts/sandbox/trunk/tiles: tiles-core/src/main/java/org/apache/tiles/context/jsp/ tiles-core/src/main/java/org/apache/tiles/context/servlet/ tiles-core/src/main/java/org/apache/tiles/definition/ tiles-core/src/main/java/org/a...

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