You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by fr...@apache.org on 2007/02/11 05:47:59 UTC

svn commit: r505834 - in /tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src: main/java/org/apache/tapestry/ main/java/org/apache/tapestry/annotations/ main/java/org/apache/tapestry/internal/model/ main/java/org/apache/tapestry/inter...

Author: freemant
Date: Sat Feb 10 20:47:58 2007
New Revision: 505834

URL: http://svn.apache.org/viewvc?view=rev&rev=505834
Log:
Removed the concept of formal parameter.

Added:
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/NoOpComponentPageElement.java   (with props)
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/runtime/NoOpComponent.java   (with props)
Removed:
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/annotations/Parameter.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/model/ParameterModelImpl.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/ParameterWorker.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/ParameterModel.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/DefaultParameterBindingMethodComponent.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/DefaultParameterComponent.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/ParameterComponent.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/ParameterWorkerTest.java
Modified:
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/BlockNotFoundException.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElement.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/ComponentModel.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/MutableComponentModel.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/services/TapestryModule.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/PageLoaderImplTest.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java
    tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/NoOpComponentModel.java

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/BlockNotFoundException.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/BlockNotFoundException.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/BlockNotFoundException.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/BlockNotFoundException.java Sat Feb 10 20:47:58 2007
@@ -22,6 +22,8 @@
  */
 public class BlockNotFoundException extends RuntimeException implements Locatable
 {
+    private static final long serialVersionUID = 81221040659940576L;
+
     private final Location _location;
 
     public BlockNotFoundException(String message, Location location)

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java Sat Feb 10 20:47:58 2007
@@ -30,7 +30,6 @@
 import org.apache.tapestry.model.EmbeddedComponentModel;
 import org.apache.tapestry.model.MutableComponentModel;
 import org.apache.tapestry.model.MutableEmbeddedComponentModel;
-import org.apache.tapestry.model.ParameterModel;
 
 /**
  * Internal implementation of {@link org.apache.tapestry.model.MutableComponentModel}.
@@ -47,8 +46,6 @@
 
     private final Log _log;
 
-    private Map<String, ParameterModel> _parameters;
-
     private Map<String, EmbeddedComponentModel> _embeddedComponents;
 
     /** Maps from field name to strategy. */
@@ -100,58 +97,6 @@
     public String getComponentClassName()
     {
         return _componentClassName;
-    }
-
-    public void addParameter(String name, boolean required, String defaultBindingPrefix)
-    {
-        notBlank(name, "name");
-        notBlank(defaultBindingPrefix, "defaultBindingPrefix");
-
-        String caseless = name.toLowerCase();
-
-        // TODO: Check for conflict with base model
-
-        if (_parameters == null)
-            _parameters = newMap();
-        else
-        {
-            if (_parameters.containsKey(caseless))
-                throw new IllegalArgumentException(ModelMessages.duplicateParameter(
-                        name,
-                        _componentClassName));
-        }
-
-        _parameters.put(caseless, new ParameterModelImpl(name, required, defaultBindingPrefix));
-    }
-
-    public ParameterModel getParameterModel(String parameterName)
-    {
-        ParameterModel result = InternalUtils.get(_parameters, parameterName.toLowerCase());
-
-        if (result == null && _parentModel != null)
-            result = _parentModel.getParameterModel(parameterName);
-
-        return result;
-    }
-
-    public List<String> getParameterNames()
-    {
-        List<String> names = newList();
-
-        if (_parameters != null)
-            names.addAll(_parameters.keySet());
-
-        if (_parentModel != null)
-            names.addAll(_parentModel.getParameterNames());
-
-        Collections.sort(names);
-
-        return names;
-    }
-
-    public List<String> getDeclaredParameterNames()
-    {
-        return InternalUtils.sortedKeys(_parameters);
     }
 
     public MutableEmbeddedComponentModel addEmbeddedComponent(String id, String type,

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java Sat Feb 10 20:47:58 2007
@@ -124,12 +124,9 @@
         if (resources.isBound(name))
             return;
 
-        // Meta default of literal for the template.
+        // Defaults to literal for the template.
 
-        String defaultBindingPrefix = determineDefaultBindingPrefix(
-                component,
-                name,
-                InternalConstants.LITERAL_BINDING_PREFIX);
+        String defaultBindingPrefix = InternalConstants.LITERAL_BINDING_PREFIX;
 
         Binding binding = _bindingSource.newBinding(
                 "parameter " + name,
@@ -162,52 +159,6 @@
         }
     }
 
-    private void bindParametersFromModel(EmbeddedComponentModel model,
-            ComponentPageElement loadingComponent, ComponentPageElement component)
-    {
-        for (String name : model.getParameterNames())
-        {
-            String value = model.getParameterValue(name);
-
-            String defaultBindingPrefix = determineDefaultBindingPrefix(
-                    component,
-                    name,
-                    InternalConstants.PROP_BINDING_PREFIX);
-
-            // At some point we may add meta data to control what the default prefix is within a
-            // component.
-
-            Binding binding = _bindingSource.newBinding(
-                    "parameter " + name,
-                    loadingComponent.getComponentResources(),
-                    component.getComponentResources(),
-                    defaultBindingPrefix,
-                    value,
-                    null);
-
-            component.bindParameter(name, binding);
-        }
-    }
-
-    /**
-     * Determines the default binding prefix for a particular parameter.
-     * 
-     * @param component
-     *            the component which will have a parameter bound
-     * @param parameterName
-     *            the name of the parameter
-     * @param informalParameterBindingPrefix
-     *            the default to use for informal parameters
-     * @return the binding prefix
-     */
-    private String determineDefaultBindingPrefix(ComponentPageElement component,
-            String parameterName, String informalParameterBindingPrefix)
-    {
-        String defaultBindingPrefix = component.getDefaultBindingPrefix(parameterName);
-
-        return defaultBindingPrefix != null ? defaultBindingPrefix : informalParameterBindingPrefix;
-    }
-
     private void addRenderBodyElement()
     {
         PageElement element = _pageElementFactory.newRenderBodyElement(_loadingElement);
@@ -548,9 +499,6 @@
                 token.getLocation());
 
         addMixinsToComponent(newComponent, embeddedModel, token.getMixins());
-
-        if (embeddedModel != null)
-            bindParametersFromModel(embeddedModel, _loadingElement, newComponent);
 
         addToBody(newComponent);
 

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElement.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElement.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElement.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElement.java Sat Feb 10 20:47:58 2007
@@ -20,7 +20,6 @@
 import org.apache.tapestry.internal.InternalComponentResources;
 import org.apache.tapestry.internal.InternalComponentResourcesCommon;
 import org.apache.tapestry.internal.services.Instantiator;
-import org.apache.tapestry.model.ParameterModel;
 import org.apache.tapestry.runtime.Component;
 import org.apache.tapestry.runtime.ComponentEvent;
 import org.apache.tapestry.runtime.RenderQueue;
@@ -114,17 +113,6 @@
      * @return true if a handler was found
      */
     boolean handleEvent(ComponentEvent event);
-
-    /**
-     * Searches the component (and its mixins) for a formal parameter matching the given name. If
-     * found, the {@link ParameterModel#getDefaultBindingPrefix() default binding prefix} is
-     * returned. Otherwise the parameter is an informal parameter, and null is returned.
-     * 
-     * @param parameterName
-     *            the name of the parameter, possibly qualified with the mixin class name
-     * @return the default binding prefix, or null
-     */
-    String getDefaultBindingPrefix(String parameterName);
 
     /**
      * Posts a change to a persistent field. If the component is still loading, then this change is

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java Sat Feb 10 20:47:58 2007
@@ -43,10 +43,8 @@
 import org.apache.tapestry.ioc.internal.util.InternalUtils;
 import org.apache.tapestry.ioc.internal.util.TapestryException;
 import org.apache.tapestry.ioc.services.TypeCoercer;
-import org.apache.tapestry.model.ComponentModel;
 import org.apache.tapestry.model.EmbeddedComponentConfigurator;
 import org.apache.tapestry.model.EmbeddedComponentModel;
-import org.apache.tapestry.model.ParameterModel;
 import org.apache.tapestry.runtime.Component;
 import org.apache.tapestry.runtime.ComponentEvent;
 import org.apache.tapestry.runtime.Event;
@@ -629,47 +627,11 @@
 
     public void bindParameter(String parameterName, Binding binding)
     {
-        // Maybe should use colon here? Depends on what works best in the template,
-        // don't want to lock this out as just
-        int dotx = parameterName.lastIndexOf('.');
-
-        if (dotx > 0)
-        {
-            String mixinName = parameterName.substring(0, dotx);
-            InternalComponentResources mixinResources = InternalUtils.get(
-                    _mixinsByShortName,
-                    mixinName);
-
-            if (mixinResources == null)
-                throw new TapestryException(StructureMessages.missingMixinForParameter(
-                        _completeId,
-                        mixinName,
-                        parameterName), binding, null);
-
-            String simpleName = parameterName.substring(dotx + 1);
-
-            mixinResources.bindParameter(simpleName, binding);
-            return;
-        }
-
         InternalComponentResources informalParameterResources = null;
 
-        // Does it match a formal parameter name of the core component? That takes precedence
-
-        if (_coreResources.getComponentModel().getParameterModel(parameterName) != null)
-        {
-            _coreResources.bindParameter(parameterName, binding);
-            return;
-        }
-
         for (String mixinName : InternalUtils.sortedKeys(_mixinsByShortName))
         {
             InternalComponentResources resources = _mixinsByShortName.get(mixinName);
-            if (resources.getComponentModel().getParameterModel(parameterName) != null)
-            {
-                resources.bindParameter(parameterName, binding);
-                return;
-            }
 
             if (informalParameterResources == null
                     && resources.getComponentModel().getSupportsInformalParameters())
@@ -702,27 +664,6 @@
         _template.add(element);
     }
 
-    private void addUnboundParameterNames(String prefix, List<String> unbound,
-            InternalComponentResources resource)
-    {
-        ComponentModel model = resource.getComponentModel();
-
-        for (String name : model.getParameterNames())
-        {
-            if (resource.isBound(name))
-                continue;
-
-            ParameterModel parameterModel = model.getParameterModel(name);
-
-            if (parameterModel.isRequired())
-            {
-                String fullName = prefix == null ? name : prefix + "." + name;
-
-                unbound.add(fullName);
-            }
-        }
-    }
-
     public void containingPageDidAttach()
     {
         invoke(false, CONTAINING_PAGE_DID_ATTACH);
@@ -776,7 +717,6 @@
 
         invoke(false, CONTAINING_PAGE_DID_LOAD);
 
-        verifyRequiredParametersAreBound();
     }
 
     /**
@@ -1057,21 +997,6 @@
         return result;
     }
 
-    private void verifyRequiredParametersAreBound()
-    {
-        List<String> unbound = newList();
-
-        addUnboundParameterNames(null, unbound, _coreResources);
-
-        for (String name : InternalUtils.sortedKeys(_mixinsByShortName))
-            addUnboundParameterNames(name, unbound, _mixinsByShortName.get(name));
-
-        if (unbound.isEmpty())
-            return;
-
-        throw new TapestryException(StructureMessages.missingParameters(unbound, this), this, null);
-    }
-
     public Locale getLocale()
     {
         return _page.getLocale();
@@ -1114,51 +1039,4 @@
         _blocks.put(caselessId, block);
     }
 
-    public String getDefaultBindingPrefix(String parameterName)
-    {
-        int dotx = parameterName.lastIndexOf('.');
-
-        if (dotx > 0)
-        {
-            String mixinName = parameterName.substring(0, dotx);
-            InternalComponentResources mixinResources = InternalUtils.get(
-                    _mixinsByShortName,
-                    mixinName);
-
-            if (mixinResources == null)
-                throw new TapestryException(StructureMessages.missingMixinForParameter(
-                        _completeId,
-                        mixinName,
-                        parameterName), null, null);
-
-            String simpleName = parameterName.substring(dotx + 1);
-
-            ParameterModel pm = mixinResources.getComponentModel().getParameterModel(simpleName);
-
-            return pm != null ? pm.getDefaultBindingPrefix() : null;
-        }
-
-        // A formal parameter of the core component?
-
-        ParameterModel pm = _coreResources.getComponentModel().getParameterModel(parameterName);
-
-        if (pm != null)
-            return pm.getDefaultBindingPrefix();
-
-        // Search for mixin that it is a formal parameter of
-
-        for (String mixinName : InternalUtils.sortedKeys(_mixinsByShortName))
-        {
-            InternalComponentResources resources = _mixinsByShortName.get(mixinName);
-
-            pm = resources.getComponentModel().getParameterModel(parameterName);
-
-            if (pm != null)
-                return pm.getDefaultBindingPrefix();
-        }
-
-        // Not a formal parameter of the core component or any mixin.
-
-        return null;
-    }
 }

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java Sat Feb 10 20:47:58 2007
@@ -263,9 +263,6 @@
 
         for (String name : _bindings.keySet())
         {
-            if (_componentModel.getParameterModel(name) != null)
-                continue;
-
             writer.attributes(name, readParameter(name, String.class));
         }
     }

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java Sat Feb 10 20:47:58 2007
@@ -247,11 +247,6 @@
         return newMock(PageElement.class);
     }
 
-    protected final void train_getParameterNames(EmbeddedComponentModel model, String... names)
-    {
-        expect(model.getParameterNames()).andReturn(Arrays.asList(names));
-    }
-
     protected final void train_newComponentElement(PageElementFactory elementFactory,
             ComponentPageElement container, String embeddedId, String embeddedType,
             String componentClassName, String elementName, Location location,

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/ComponentModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/ComponentModel.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/ComponentModel.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/ComponentModel.java Sat Feb 10 20:47:58 2007
@@ -72,27 +72,6 @@
     List<String> getMixinClassNames();
 
     /**
-     * Return a single parameter model by parameter name, or null if the parameter is not defined.
-     * 
-     * @param parameterName
-     *            the name of the parameter (case is ignored)
-     */
-    ParameterModel getParameterModel(String parameterName);
-
-    /**
-     * Returns an alphabetically sorted list of the names of all formal parameters. This includes
-     * parameters defined by a base class.
-     */
-
-    List<String> getParameterNames();
-
-    /**
-     * Returns an alphabetically sorted list of the names of all formal parameters defined by this
-     * specific class (parameters inherited from base classes are not identified).
-     */
-    List<String> getDeclaredParameterNames();
-
-    /**
      * Returns a list of the names of all persistent fields (within this class, or any super-class).
      * The names are sorted alphabetically.
      * 

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/MutableComponentModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/MutableComponentModel.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/MutableComponentModel.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/model/MutableComponentModel.java Sat Feb 10 20:47:58 2007
@@ -14,7 +14,6 @@
 
 package org.apache.tapestry.model;
 
-import org.apache.tapestry.annotations.Parameter;
 import org.apache.tapestry.annotations.Persist;
 import org.apache.tapestry.internal.InternalComponentResources;
 
@@ -24,22 +23,6 @@
  */
 public interface MutableComponentModel extends ComponentModel
 {
-    /**
-     * Adds a new formal parameter to the model. Each parameter has a unique name (though access to
-     * parameters is case insensitive).
-     * 
-     * @param name
-     *            new, unique name for the parameter
-     * @param required
-     *            if true, the parameter must be bound
-     * @param defaultBindingPrefix
-     *            the default binding prefix for this parameter
-     * @throws IllegalArgumentException
-     *             if a parameter with the given name has already been defined for this model
-     * @see Parameter
-     */
-    void addParameter(String name, boolean required, String defaultBindingPrefix);
-
     /**
      * Defines a new embedded component.
      * 

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/services/TapestryModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/services/TapestryModule.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/services/TapestryModule.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/services/TapestryModule.java Sat Feb 10 20:47:58 2007
@@ -77,6 +77,7 @@
 import org.apache.tapestry.internal.services.ComponentResourcesInjectionProvider;
 import org.apache.tapestry.internal.services.ComponentSourceImpl;
 import org.apache.tapestry.internal.services.ComponentWorker;
+import org.apache.tapestry.internal.services.CompoundalidatorGenerator;
 import org.apache.tapestry.internal.services.ContextImpl;
 import org.apache.tapestry.internal.services.ContextPathSource;
 import org.apache.tapestry.internal.services.CookieSink;
@@ -114,7 +115,6 @@
 import org.apache.tapestry.internal.services.PageRenderDispatcher;
 import org.apache.tapestry.internal.services.PageRenderSupportImpl;
 import org.apache.tapestry.internal.services.PageResponseRenderer;
-import org.apache.tapestry.internal.services.ParameterWorker;
 import org.apache.tapestry.internal.services.PersistWorker;
 import org.apache.tapestry.internal.services.PersistentFieldManagerImpl;
 import org.apache.tapestry.internal.services.RenderCommandWorker;
@@ -137,7 +137,6 @@
 import org.apache.tapestry.internal.services.UnclaimedFieldWorker;
 import org.apache.tapestry.internal.services.UpdateListenerHub;
 import org.apache.tapestry.internal.services.ValidationMessagesSourceImpl;
-import org.apache.tapestry.internal.services.CompoundalidatorGenerator;
 import org.apache.tapestry.ioc.Configuration;
 import org.apache.tapestry.ioc.IOCUtilities;
 import org.apache.tapestry.ioc.MappedConfiguration;
@@ -642,8 +641,6 @@
      * <ul>
      * <li>Retain -- allows fields to retain their values between requests</li>
      * <li>Persist -- allows fields to store their their value persistently between requests</li>
-     * <li>Parameter -- identifies parameters based on the
-     * {@link org.apache.tapestry.annotations.Parameter} annotation</li>
      * <li>Component -- identifies embedded components based on the
      * {@link org.apache.tapestry.annotations.Component} annotation</li>
      * <li>Mixin -- adds a mixin as part of a component's implementation</li>
@@ -698,11 +695,6 @@
         configuration.add("InjectPage", new InjectPageWorker(requestPageCache));
         configuration.add("InjectComponent", new InjectComponentWorker());
         configuration.add("RenderCommand", new RenderCommandWorker());
-
-        // Default values for parameters are often some form of injection, so make sure
-        // that Parameter fields are processed after injections.
-
-        configuration.add("Parameter", new ParameterWorker(bindingsource), "after:Inject*");
 
         // Workers for the component rendering state machine methods; this is in typical
         // execution order.

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/test/TapestryTestCase.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/test/TapestryTestCase.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/test/TapestryTestCase.java Sat Feb 10 20:47:58 2007
@@ -48,7 +48,6 @@
 import org.apache.tapestry.ValidationTracker;
 import org.apache.tapestry.Validator;
 import org.apache.tapestry.annotations.Inject;
-import org.apache.tapestry.annotations.Parameter;
 import org.apache.tapestry.beaneditor.PropertyConduit;
 import org.apache.tapestry.beaneditor.PropertyEditModel;
 import org.apache.tapestry.ioc.Location;
@@ -58,7 +57,6 @@
 import org.apache.tapestry.ioc.test.IOCTestCase;
 import org.apache.tapestry.model.ComponentModel;
 import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.model.ParameterModel;
 import org.apache.tapestry.runtime.Component;
 import org.apache.tapestry.services.ApplicationStateCreator;
 import org.apache.tapestry.services.ApplicationStatePersistenceStrategy;
@@ -224,11 +222,6 @@
 
     }
 
-    protected final void train_name(Parameter parameter, String name)
-    {
-        expect(parameter.name()).andReturn(name).atLeastOnce();
-    }
-
     protected final void train_findMethodsWithAnnotation(ClassTransformation tf,
             Class<? extends Annotation> annotationType, List<MethodSignature> sigs)
     {
@@ -254,30 +247,9 @@
         expect(transformation.toClass(type)).andReturn(classForType);
     }
 
-    protected final ParameterModel newParameterModel()
-    {
-        return newMock(ParameterModel.class);
-    }
-
     protected final void train_getComponentClassName(ComponentModel model, String className)
     {
         expect(model.getComponentClassName()).andReturn(className).atLeastOnce();
-    }
-
-    protected final void train_isRequired(ParameterModel model, boolean isRequired)
-    {
-        expect(model.isRequired()).andReturn(isRequired);
-    }
-
-    protected final void train_getParameterModel(ComponentModel model, String parameterName,
-            ParameterModel parameterModel)
-    {
-        expect(model.getParameterModel(parameterName)).andReturn(parameterModel);
-    }
-
-    protected final void train_getParameterNames(ComponentModel model, String... names)
-    {
-        expect(model.getParameterNames()).andReturn(Arrays.asList(names));
     }
 
     protected final void train_isInvariant(Binding binding, boolean isInvariant)

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java Sat Feb 10 20:47:58 2007
@@ -17,13 +17,11 @@
 import java.util.Arrays;
 
 import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.InternalConstants;
 import org.apache.tapestry.internal.test.InternalBaseTestCase;
 import org.apache.tapestry.ioc.Resource;
 import org.apache.tapestry.model.ComponentModel;
 import org.apache.tapestry.model.MutableComponentModel;
 import org.apache.tapestry.model.MutableEmbeddedComponentModel;
-import org.apache.tapestry.model.ParameterModel;
 import org.testng.annotations.Test;
 
 /**
@@ -55,143 +53,6 @@
         verify();
     }
 
-    @Test
-    public void add_new_parameter()
-    {
-        Resource r = newResource();
-        Log log = newLog();
-
-        replay();
-
-        MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, log, r, null);
-
-        assertTrue(model.getParameterNames().isEmpty());
-
-        String parameterName = "value";
-
-        model.addParameter(parameterName, true, InternalConstants.PROP_BINDING_PREFIX);
-
-        ParameterModel pm = model.getParameterModel(parameterName);
-
-        assertEquals(pm.getName(), parameterName);
-        assertEquals(true, pm.isRequired());
-        assertEquals(pm.getDefaultBindingPrefix(), InternalConstants.PROP_BINDING_PREFIX);
-
-        assertEquals(model.getDeclaredParameterNames(), Arrays.asList(parameterName));
-
-        // Verify that the binding prefix is actually stored:
-
-        model.addParameter("fred", true, "flint");
-
-        // Checks that parameter names are case insensitive
-        
-        assertEquals(model.getParameterModel("Fred").getDefaultBindingPrefix(), "flint");
-
-        verify();
-    }
-
-    @Test
-    public void parameter_names_are_sorted()
-    {
-        Resource r = newResource();
-        Log log = newLog();
-
-        replay();
-
-        MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, log, r, null);
-
-        model.addParameter("fred", true, InternalConstants.PROP_BINDING_PREFIX);
-        model.addParameter("wilma", true, InternalConstants.PROP_BINDING_PREFIX);
-        model.addParameter("barney", true, InternalConstants.PROP_BINDING_PREFIX);
-
-        assertEquals(model.getDeclaredParameterNames(), Arrays.asList("barney", "fred", "wilma"));
-
-        verify();
-    }
-
-    @Test
-    public void declared_parameter_names_does_not_include_superclass_parameters()
-    {
-        Resource r = newResource();
-        Log log = newLog();
-        ComponentModel parent = newComponentModel();
-
-        train_getPersistentFieldNames(parent);
-        train_getParameterNames(parent, "betty");
-
-        replay();
-
-        MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, log, r, parent);
-
-        model.addParameter("fred", true, InternalConstants.PROP_BINDING_PREFIX);
-        model.addParameter("wilma", true, InternalConstants.PROP_BINDING_PREFIX);
-        model.addParameter("barney", true, InternalConstants.PROP_BINDING_PREFIX);
-
-        assertEquals(model.getDeclaredParameterNames(), Arrays.asList("barney", "fred", "wilma"));
-        assertEquals(model.getParameterNames(), Arrays.asList("barney", "betty", "fred", "wilma"));
-
-        verify();
-    }
-
-    @Test
-    public void add_duplicate_parameter()
-    {
-        Resource r = newResource();
-        Log log = newLog();
-
-        replay();
-
-        MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, log, r, null);
-
-        model.addParameter("fred", true, InternalConstants.PROP_BINDING_PREFIX);
-
-        try
-        {
-            // This also helps check that the comparison is caseless!
-            
-            model.addParameter("Fred", true, InternalConstants.PROP_BINDING_PREFIX);
-            unreachable();
-        }
-        catch (IllegalArgumentException ex)
-        {
-            assertEquals(
-                    ex.getMessage(),
-                    "Parameter 'Fred' of component org.example.components.Foo is already defined.");
-        }
-
-        verify();
-    }
-
-    @Test
-    public void get_parameter_by_name_with_no_parameters_defined()
-    {
-        Resource r = newResource();
-        Log log = newLog();
-
-        replay();
-
-        MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, log, r, null);
-
-        assertNull(model.getParameterModel("foo"));
-
-        verify();
-    }
-
-    @Test
-    public void get_unknown_parameter()
-    {
-        Resource r = newResource();
-        Log log = newLog();
-
-        replay();
-
-        MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, log, r, null);
-        model.addParameter("fred", true, InternalConstants.PROP_BINDING_PREFIX);
-
-        assertNull(model.getParameterModel("barney"));
-
-        verify();
-    }
 
     @Test
     public void add_embedded()

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java Sat Feb 10 20:47:58 2007
@@ -678,8 +678,6 @@
     @Test
     public void removed_fields_should_not_show_up_as_unclaimed() throws Exception
     {
-        InternalComponentResources resources = newInternalComponentResources();
-
         Log log = newLog();
 
         replay();

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/PageLoaderImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/PageLoaderImplTest.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/PageLoaderImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/PageLoaderImplTest.java Sat Feb 10 20:47:58 2007
@@ -146,8 +146,6 @@
 
         rootElement.addToTemplate(childElement);
 
-        train_getParameterNames(emodel);
-
         // Alas, what comes next is the recursive call to load the child element
 
         train_getComponentResources(childElement, childResources);

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java Sat Feb 10 20:47:58 2007
@@ -14,19 +14,20 @@
 
 package org.apache.tapestry.internal.structure;
 
-import org.apache.tapestry.Binding;
 import org.apache.tapestry.Block;
 import org.apache.tapestry.BlockNotFoundException;
 import org.apache.tapestry.ComponentResources;
 import org.apache.tapestry.internal.InternalComponentResources;
 import org.apache.tapestry.internal.services.Instantiator;
+import org.apache.tapestry.internal.services.NoOpInstantiator;
+import org.apache.tapestry.internal.services.NoOpPage;
 import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.ioc.Location;
 import org.apache.tapestry.ioc.internal.util.TapestryException;
 import org.apache.tapestry.ioc.services.TypeCoercer;
 import org.apache.tapestry.model.ComponentModel;
-import org.apache.tapestry.model.ParameterModel;
+import org.apache.tapestry.model.NoOpComponentModel;
 import org.apache.tapestry.runtime.Component;
+import org.apache.tapestry.runtime.NoOpComponent;
 import org.easymock.EasyMock;
 import org.testng.annotations.Test;
 
@@ -100,36 +101,6 @@
     }
 
     @Test
-    public void parameter_is_bound()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        Binding binding = newBinding();
-        TypeCoercer coercer = newTypeCoercer();
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getParameterModel(model, "barney", null);
-
-        train_getSupportsInformalParameters(model, true);
-
-        replay();
-
-        ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        ComponentResources resources = cpe.getComponentResources();
-        assertFalse(resources.isBound("fred"));
-
-        cpe.bindParameter("barney", binding);
-
-        assertFalse(resources.isBound("fred"));
-        assertTrue(resources.isBound("barney"));
-
-        verify();
-    }
-
-    @Test
     public void duplicate_block_id()
     {
         Page page = newPage(PAGE_NAME);
@@ -163,209 +134,6 @@
     }
 
     @Test
-    public void verify_required_parameters_all_are_bound()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        Binding binding = newBinding();
-        TypeCoercer coercer = newTypeCoercer();
-        ParameterModel pmodel = newParameterModel();
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getParameterNames(model, "barney");
-        train_getParameterModel(model, "barney", pmodel);
-
-        component.containingPageDidLoad();
-
-        replay();
-
-        ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        cpe.bindParameter("barney", binding);
-
-        cpe.containingPageDidLoad();
-
-        verify();
-    }
-
-    @Test
-    public void verify_required_parameters_unbound_but_not_required()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        ParameterModel pmodel = newParameterModel();
-        TypeCoercer coercer = newTypeCoercer();
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getParameterNames(model, "barney");
-        train_getParameterModel(model, "barney", pmodel);
-        train_isRequired(pmodel, false);
-
-        component.containingPageDidLoad();
-
-        replay();
-
-        ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        cpe.containingPageDidLoad();
-
-        verify();
-    }
-
-    @Test
-    public void verify_required_parameters_unbound_and_required()
-    {
-        Page page = newPage();
-        ComponentPageElement container = newComponentPageElement();
-        InternalComponentResources containerResources = newInternalComponentResources();
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        ParameterModel pmodel = newParameterModel();
-        Location l = newLocation();
-        TypeCoercer coercer = newTypeCoercer();
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getComponentResources(container, containerResources);
-
-        train_getNestedId(container, null);
-        train_getName(page, "foo.pages.MyPage");
-
-        train_getParameterNames(model, "wilma", "barney", "fred");
-        train_getParameterModel(model, "wilma", pmodel);
-        train_isRequired(pmodel, true);
-
-        train_getParameterModel(model, "barney", pmodel);
-        train_isRequired(pmodel, false);
-
-        train_getParameterModel(model, "fred", pmodel);
-        train_isRequired(pmodel, true);
-
-        // Now called *before* the check for unbound parametesr
-
-        component.containingPageDidLoad();
-
-        train_getComponentClassName(model, "foo.components.MyComponent");
-
-        replay();
-
-        ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, container, "myid", null,
-                ins, coercer, null, l);
-
-        try
-        {
-            cpe.containingPageDidLoad();
-        }
-        catch (TapestryException ex)
-        {
-            assertEquals(
-                    ex.getMessage(),
-                    "Parameter(s) fred, wilma are required for foo.components.MyComponent, but have not been bound.");
-            assertSame(ex.getLocation(), l);
-        }
-
-        verify();
-    }
-
-    @Test
-    public void is_invariant()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        Binding binding = newBinding();
-        TypeCoercer coercer = newTypeCoercer();
-        ParameterModel pmodel = newParameterModel();
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getParameterModel(model, "barney", pmodel);
-
-        train_isInvariant(binding, true);
-
-        replay();
-
-        ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        assertFalse(cpe.getComponentResources().isInvariant("fred"));
-
-        cpe.bindParameter("barney", binding);
-
-        assertFalse(cpe.getComponentResources().isInvariant("fred"));
-        assertTrue(cpe.getComponentResources().isInvariant("barney"));
-
-        verify();
-    }
-
-    @Test
-    public void read_binding()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        TypeCoercer coercer = newTypeCoercer();
-        Binding binding = newBinding();
-
-        train_getSupportsInformalParameters(model, true);
-
-        Long boundValue = new Long(23);
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getParameterModel(model, "barney", null);
-
-        train_get(binding, boundValue);
-
-        train_coerce(coercer, boundValue, Long.class, boundValue);
-
-        replay();
-
-        ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        cpe.bindParameter("barney", binding);
-
-        assertSame(cpe.getComponentResources().readParameter("barney", Long.class), boundValue);
-
-        verify();
-    }
-
-    @Test
-    public void write_binding()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        TypeCoercer coercer = newTypeCoercer();
-        Binding binding = newBinding();
-
-        Instantiator ins = newInstantiator(component, model);
-
-        train_getParameterModel(model, "barney", null);
-
-        train_getSupportsInformalParameters(model, true);
-
-        expect(binding.getBindingType()).andReturn(Integer.class);
-
-        train_coerce(coercer, 23, Integer.class, 23);
-
-        binding.set(23);
-
-        replay();
-
-        ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        cpe.bindParameter("barney", binding);
-
-        cpe.getComponentResources().writeParameter("barney", 23);
-
-        verify();
-    }
-
-    @Test
     public void get_embedded_does_not_exist()
     {
         Page page = newPage(PAGE_NAME);
@@ -424,6 +192,62 @@
     }
 
     @Test
+    public void get_embedded_component_by_lifecycle_object()
+    {
+        Page page = new NoOpPage(PAGE_NAME, null);
+        final Component childComponent1 = new NoOpComponent();
+        final Component childComponent2 = new NoOpComponent();
+        ComponentPageElement childElement1 = new NoOpComponentPageElement()
+        {
+            @Override
+            public String getId()
+            {
+                return "c1";
+            }
+
+            @Override
+            public Component getComponent()
+            {
+                return childComponent1;
+            }
+
+        };
+        ComponentPageElement childElement2 = new NoOpComponentPageElement()
+        {
+
+            @Override
+            public String getId()
+            {
+                return "c2";
+            }
+
+            @Override
+            public Component getComponent()
+            {
+                return childComponent2;
+            }
+
+        };
+        final ComponentModel model = new NoOpComponentModel();
+        Instantiator instantiator = new NoOpInstantiator()
+        {
+        
+            @Override
+            public ComponentModel getModel()
+            {
+                return model;
+            }
+        
+        };
+        
+        ComponentPageElement cpe = new ComponentPageElementImpl(page, instantiator, null, null);
+        cpe.addEmbeddedElement(childElement1);
+        cpe.addEmbeddedElement(childElement2);
+        assertSame(cpe.getEmbeddedElement(childComponent1), childElement1);
+        assertSame(cpe.getEmbeddedElement(childComponent2), childElement2);
+    }
+
+    @Test
     public void component_ids_must_be_unique_within_container()
     {
         Page page = newPage(PAGE_NAME);
@@ -518,42 +342,6 @@
 
         verify();
 
-    }
-
-    @Test
-    public void set_explicit_parameter_of_unknown_mixin()
-    {
-        Page page = newPage(PAGE_NAME);
-        Component component = newComponent();
-        ComponentModel model = newComponentModel();
-        ComponentModel mixinModel = newComponentModel();
-        Component mixin = newComponent();
-        TypeCoercer coercer = newTypeCoercer();
-        Binding binding = newBinding();
-
-        Instantiator ins = newInstantiator(component, model);
-        Instantiator mixinInstantiator = newInstantiator(mixin, mixinModel);
-
-        train_getComponentClassName(mixinModel, "foo.Fred");
-
-        replay();
-
-        ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer, null);
-
-        cpe.addMixin(mixinInstantiator);
-
-        try
-        {
-            cpe.bindParameter("Wilma.barney", binding);
-            unreachable();
-        }
-        catch (TapestryException ex)
-        {
-            assertTrue(ex.getMessage().contains(
-                    "does not contain a mixin named 'Wilma' (setting parameter 'Wilma.barney')"));
-        }
-
-        verify();
     }
 
     private Instantiator newInstantiator(Component component, ComponentModel model)

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java Sat Feb 10 20:47:58 2007
@@ -31,7 +31,6 @@
 import org.apache.tapestry.ioc.services.TypeCoercer;
 import org.apache.tapestry.model.ComponentModel;
 import org.apache.tapestry.model.NoOpComponentModel;
-import org.apache.tapestry.model.ParameterModel;
 import org.apache.tapestry.runtime.Component;
 import org.testng.annotations.Test;
 
@@ -62,35 +61,6 @@
 
     @SuppressWarnings("unchecked")
     @Test
-    public void render_informal_parameters_skips_formal_parameters()
-    {
-        ComponentPageElement element = newComponentPageElement();
-        Component component = newComponent();
-        Instantiator ins = newInstantiator(component);
-        MarkupWriter writer = newMarkupWriter();
-        TypeCoercer coercer = newTypeCoercer();
-        ComponentModel model = newComponentModel();
-        ParameterModel pmodel = newParameterModel();
-        Binding binding = newBinding();
-
-        train_getModel(ins, model);
-
-        train_getParameterModel(model, "fred", pmodel);
-
-        replay();
-
-        InternalComponentResources resources = new InternalComponentResourcesImpl(element, null,
-                ins, coercer, null);
-
-        resources.bindParameter("fred", binding);
-
-        resources.renderInformalParameters(writer, Collections.EMPTY_MAP);
-
-        verify();
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
     public void render_an_informal_parameter()
     {
         ComponentPageElement element = newComponentPageElement();
@@ -104,8 +74,6 @@
         String convertedValue = "*converted*";
 
         train_getModel(ins, model);
-
-        train_getParameterModel(model, "fred", null);
 
         train_get(binding, rawValue);
 

Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/NoOpComponentPageElement.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/NoOpComponentPageElement.java?view=auto&rev=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/NoOpComponentPageElement.java (added)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/NoOpComponentPageElement.java Sat Feb 10 20:47:58 2007
@@ -0,0 +1,213 @@
+package org.apache.tapestry.internal.structure;
+
+import java.util.Locale;
+
+import org.apache.commons.logging.Log;
+import org.apache.tapestry.Binding;
+import org.apache.tapestry.Block;
+import org.apache.tapestry.ComponentEventHandler;
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.Link;
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.internal.InternalComponentResources;
+import org.apache.tapestry.internal.services.Instantiator;
+import org.apache.tapestry.runtime.Component;
+import org.apache.tapestry.runtime.ComponentEvent;
+import org.apache.tapestry.runtime.RenderQueue;
+
+public class NoOpComponentPageElement implements ComponentPageElement
+{
+
+    public Component getComponent()
+    {
+        
+        return null;
+    }
+
+    public InternalComponentResources getComponentResources()
+    {
+        
+        return null;
+    }
+
+    public Page getContainingPage()
+    {
+        
+        return null;
+    }
+
+    public ComponentPageElement getContainerElement()
+    {
+        
+        return null;
+    }
+
+    public void addToTemplate(PageElement element)
+    {
+        
+        
+    }
+
+    public void addBlock(String blockId, Block block)
+    {
+        
+        
+    }
+
+    public void addEmbeddedElement(ComponentPageElement child)
+    {
+        
+        
+    }
+
+    public void addMixin(Instantiator instantiator)
+    {
+        
+        
+    }
+
+    public ComponentPageElement getEmbeddedElement(String id)
+    {
+        
+        return null;
+    }
+
+    public ComponentPageElement getEmbeddedElement(Object embeddedComponent)
+    {
+        
+        return null;
+    }
+
+    public void enqueueBeforeRenderBody(RenderQueue queue)
+    {
+        
+        
+    }
+
+    public boolean handleEvent(ComponentEvent event)
+    {
+        
+        return false;
+    }
+
+    public void persistFieldChange(ComponentResources resources, String fieldName, Object newValue)
+    {
+        
+        
+    }
+
+    public String getId()
+    {
+        
+        return null;
+    }
+
+    public String getNestedId()
+    {
+        
+        return null;
+    }
+
+    public Link createActionLink(String action, boolean forForm, Object... context)
+    {
+        
+        return null;
+    }
+
+    public Link createPageLink(String pageName)
+    {
+        
+        return null;
+    }
+
+    public String getCompleteId()
+    {
+        
+        return null;
+    }
+
+    public boolean triggerEvent(String eventType, Object[] context, ComponentEventHandler handler)
+    {
+        
+        return false;
+    }
+
+    public boolean isRendering()
+    {
+        
+        return false;
+    }
+
+    public Log getLog()
+    {
+        
+        return null;
+    }
+
+    public Locale getLocale()
+    {
+        
+        return null;
+    }
+
+    public String getElementName()
+    {
+        
+        return null;
+    }
+
+    public Block getBlock(String blockId)
+    {
+        
+        return null;
+    }
+
+    public Object getFieldChange(String fieldName)
+    {
+        
+        return null;
+    }
+
+    public boolean hasFieldChange(String fieldName)
+    {
+        
+        return false;
+    }
+
+    public boolean isLoaded()
+    {
+        
+        return false;
+    }
+
+    public void bindParameter(String parameterName, Binding binding)
+    {
+        
+        
+    }
+
+    public Component getMixinByClassName(String mixinClassName)
+    {
+        
+        return null;
+    }
+
+    public void queueRender(RenderQueue queue)
+    {
+        
+        
+    }
+
+    public void render(MarkupWriter writer, RenderQueue queue)
+    {
+        
+        
+    }
+
+    public void addToBody(PageElement element)
+    {
+        
+        
+    }
+
+}

Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/NoOpComponentPageElement.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/NoOpComponentModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/NoOpComponentModel.java?view=diff&rev=505834&r1=505833&r2=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/NoOpComponentModel.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/NoOpComponentModel.java Sat Feb 10 20:47:58 2007
@@ -57,21 +57,6 @@
         return null;
     }
 
-    public ParameterModel getParameterModel(String parameterName)
-    {
-        return null;
-    }
-
-    public List<String> getParameterNames()
-    {
-        return null;
-    }
-
-    public List<String> getDeclaredParameterNames()
-    {
-        return null;
-    }
-
     public List<String> getPersistentFieldNames()
     {
         return null;

Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/runtime/NoOpComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/runtime/NoOpComponent.java?view=auto&rev=505834
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/runtime/NoOpComponent.java (added)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/runtime/NoOpComponent.java Sat Feb 10 20:47:58 2007
@@ -0,0 +1,93 @@
+package org.apache.tapestry.runtime;
+
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.MarkupWriter;
+
+public class NoOpComponent implements Component
+{
+
+    public void postRenderCleanup()
+    {
+        
+        
+    }
+
+    public void setupRender(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void beginRender(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void beforeRenderTemplate(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void afterRenderTemplate(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void beforeRenderBody(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void afterRenderBody(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void afterRender(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public void cleanupRender(MarkupWriter writer, Event event)
+    {
+        
+        
+    }
+
+    public boolean handleComponentEvent(ComponentEvent event)
+    {
+        
+        return false;
+    }
+
+    public ComponentResources getComponentResources()
+    {
+        
+        return null;
+    }
+
+    public void containingPageDidLoad()
+    {
+        
+        
+    }
+
+    public void containingPageDidDetach()
+    {
+        
+        
+    }
+
+    public void containingPageDidAttach()
+    {
+        
+        
+    }
+
+}

Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/runtime/NoOpComponent.java
------------------------------------------------------------------------------
    svn:eol-style = native