You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2005/11/14 13:55:37 UTC

svn commit: r344110 - in /jakarta/tapestry/trunk: ./ framework/src/descriptor/META-INF/ framework/src/documentation/content/xdocs/tapestry/ComponentReference/ framework/src/java/org/apache/tapestry/ framework/src/java/org/apache/tapestry/binding/ frame...

Author: hlship
Date: Mon Nov 14 04:55:12 2005
New Revision: 344110

URL: http://svn.apache.org/viewcvs?rev=344110&view=rev
Log:
Make default binding prefix configurable

Added:
    jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/index.xml
    jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/PageLoaderTest.java
      - copied, changed from r332813, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestPageLoader.java
Removed:
    jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestPageLoader.java
Modified:
    jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.page.xml
    jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.props.xml
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/TapestryConstants.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AbstractBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AssetBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BeanBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ComponentBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/HiveMindBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerMethodBinding.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/LiteralBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/MessageBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/OGNLBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBinding.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/translator/TranslatorBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/validator/ValidatorsBindingFactory.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/pageload/PageLoader.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ComponentPropertySourceImpl.java
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/valid/ValidatorBindingFactory.java
    jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
    jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java
    jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestNamespaceClassSearchComponentClassProvider.java
    jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBinding.java
    jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBindingFactory.java
    jakarta/tapestry/trunk/src/documentation/content/xdocs/QuickStart/index.xml
    jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/bindings.xml
    jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/configuration.xml
    jakarta/tapestry/trunk/status.xml

Modified: jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.page.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.page.xml?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.page.xml (original)
+++ jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.page.xml Mon Nov 14 04:55:12 2005
@@ -45,6 +45,7 @@
         <set-service property="assetSource" service-id="tapestry.asset.AssetSource"/>
         <set-service property="pageClassProvider" service-id="PageClassProvider"/>
         <set-service property="componentClassProvider" service-id="ComponentClassProvider"/>
+        <set-object property="componentPropertySource" value="infrastructure:componentPropertySource"/>
         <set-service property="threadLocale" service-id="hivemind.ThreadLocale"/>
       </construct>
     </invoke-factory>

Modified: jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.props.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.props.xml?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.props.xml (original)
+++ jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.props.xml Mon Nov 14 04:55:12 2005
@@ -188,7 +188,8 @@
     <default symbol="org.apache.tapestry.enhance.disable-abstract-method-validation" value="false"/>
     <default symbol="org.apache.tapestry.default-page-class" value="org.apache.tapestry.html.BasePage"/>
     <default symbol="org.apache.tapestry.template-extension" value="html"/>   
-    <default symbol="org.apache.tapestry.jwcid-attribute-name" value="jwcid"/> 
+    <default symbol="org.apache.tapestry.jwcid-attribute-name" value="jwcid"/>
+    <default symbol="org.apache.tapestry.default-binding-prefix" value="ognl"/> 
   </contribution>    
   
   <!-- This may need to be converted into an IPropertySource and injected into the ApplicationPropertySources

Added: jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/index.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/index.xml?rev=344110&view=auto
==============================================================================
--- jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/index.xml (added)
+++ jakarta/tapestry/trunk/framework/src/documentation/content/xdocs/tapestry/ComponentReference/index.xml Mon Nov 14 04:55:12 2005
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!-- 
+    Copyright 2005 The Apache Software Foundation
+    
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+    
+    http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd"
+[
+	<!ENTITY projectroot '../../'>
+	<!ENTITY % links.ent SYSTEM "../../links.ent">
+	%links.ent;
+	]>
+<document>
+    <header>
+        <title>Framework Component Reference</title>
+    </header>
+    <body>
+        <p> The menu to the left lists all the components provided with the Tapestry framework. </p>
+        <p> Such components may always be referenced without any library prefix; in cases where an application or
+            library provides a component with the same name, the special prefix "framework:" may be used. That is,
+            "DirectLink" and "framework:DirectLink" are equivalent, unless your application (or library) includes a
+            component <em>also</em> named "DirectLink". </p>
+    </body>
+</document>

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/TapestryConstants.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/TapestryConstants.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/TapestryConstants.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/TapestryConstants.java Mon Nov 14 04:55:12 2005
@@ -32,6 +32,13 @@
 
     public static final String PAGE_CLASS_NAME = "org.apache.tapestry.default-page-class";
 
+    /**
+     * Name of meta-data property used to determine the default binding prefix. The meta default for
+     * this is "ognl".
+     */
+
+    public static final String DEFAULT_BINDING_PREFIX_NAME = "org.apache.tapestry.default-binding-prefix";
+
     private TapestryConstants()
     {
     }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AbstractBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AbstractBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AbstractBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AbstractBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -17,11 +17,15 @@
 import org.apache.tapestry.coerce.ValueConverter;
 
 /**
+ * Base class for {@link org.apache.tapestry.binding.BindingFactory}s. Manages a
+ * {@link #getValueConverter() valueConverter property}, as all binding instances will need such a
+ * value injected.
+ * 
  * @author Howard M. Lewis Ship
+ * @since 4.0
  */
 public abstract class AbstractBindingFactory implements BindingFactory
 {
-
     private ValueConverter _valueConverter;
 
     public ValueConverter getValueConverter()

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AssetBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AssetBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AssetBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/AssetBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -26,10 +26,9 @@
  */
 public class AssetBindingFactory extends AbstractBindingFactory
 {
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-
-        return new AssetBinding(description, getValueConverter(), location, root, path);
+        return new AssetBinding(description, getValueConverter(), location, root, expression);
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BeanBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BeanBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BeanBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BeanBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -25,9 +25,9 @@
 public class BeanBindingFactory extends AbstractBindingFactory
 {
 
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-        return new BeanBinding(description, getValueConverter(), location, root, path);
+        return new BeanBinding(description, getValueConverter(), location, root, expression);
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/BindingFactory.java Mon Nov 14 04:55:12 2005
@@ -34,15 +34,16 @@
      *            path is "evaluated", the root component provides a context.
      * @param description
      *            The {@link IBinding#getDescription() description}of the binding.
-     * @param path
-     *            The path used to get (or update) a value for the path. This may be an OGNL
-     *            expression, a message key, a literal value, or otherwise defined by the type of
-     *            binding. It is the value of the binding reference with the prefix (used to
-     *            identify the factory) stripped off.
+     * @param expression
+     *            The expression used to get (or update) a value. The interpretation of this
+     *            expression is determined by the type of {@link IBinding} created by this factory.
+     *            In some cases, it is simple the name of an object contained by the root component.
+     *            For the common "ognl:" binding prefix, it is an OGNL expression to be evaluated on
+     *            the root object.
      * @param location
      *            The location of the binding, used to report any errors related to the binding, or
      *            to the component parameter the binding is bound to.
      */
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location);
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ComponentBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ComponentBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ComponentBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ComponentBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -27,9 +27,9 @@
  */
 public class ComponentBindingFactory extends AbstractBindingFactory
 {
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-        return new ComponentBinding(description, getValueConverter(), location, root, path);
+        return new ComponentBinding(description, getValueConverter(), location, root, expression);
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/HiveMindBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/HiveMindBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/HiveMindBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/HiveMindBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -29,10 +29,10 @@
 {
     private InjectedValueProvider _injectedValueProvider;
 
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location)
     {
-        return new HiveMindBinding(bindingDescription, getValueConverter(), location, path,
+        return new HiveMindBinding(bindingDescription, getValueConverter(), location, expression,
                 _injectedValueProvider);
     }
 

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -28,10 +28,11 @@
 public class ListenerBindingFactory extends AbstractBindingFactory
 {
 
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-        return new ListenerMethodBinding(root, path, description, getValueConverter(), location);
+        return new ListenerMethodBinding(description, getValueConverter(), location, root,
+                expression);
     }
 
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerMethodBinding.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerMethodBinding.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerMethodBinding.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/ListenerMethodBinding.java Mon Nov 14 04:55:12 2005
@@ -41,8 +41,8 @@
 
     private IActionListener _listener;
 
-    public ListenerMethodBinding(IComponent component, String methodName, String description,
-            ValueConverter valueConverter, Location location)
+    public ListenerMethodBinding(String description, ValueConverter valueConverter, Location location,
+            IComponent component, String methodName)
     {
         super(description, valueConverter, location);
 

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/LiteralBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/LiteralBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/LiteralBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/LiteralBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -28,10 +28,10 @@
 public class LiteralBindingFactory extends AbstractBindingFactory
 {
 
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-        return new LiteralBinding(description, getValueConverter(), location, path);
+        return new LiteralBinding(description, getValueConverter(), location, expression);
     }
 
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/MessageBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/MessageBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/MessageBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/MessageBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -26,9 +26,9 @@
  */
 public class MessageBindingFactory extends AbstractBindingFactory
 {
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-        return new MessageBinding(description, getValueConverter(), location, root, path);
+        return new MessageBinding(description, getValueConverter(), location, root, expression);
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/OGNLBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/OGNLBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/OGNLBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/OGNLBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -33,10 +33,10 @@
 
     private ExpressionCache _expressionCache;
 
-    public IBinding createBinding(IComponent root, String description, String path,
+    public IBinding createBinding(IComponent root, String description, String expression,
             Location location)
     {
-        return new ExpressionBinding(description, location, getValueConverter(), root, path,
+        return new ExpressionBinding(description, location, getValueConverter(), root, expression,
                 _expressionEvaluator, _expressionCache);
     }
 

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBinding.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBinding.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBinding.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBinding.java Mon Nov 14 04:55:12 2005
@@ -29,9 +29,9 @@
  */
 public class StateBinding extends AbstractBinding
 {
-    private ApplicationStateManager _applicationStateManager;
+    private final ApplicationStateManager _applicationStateManager;
 
-    private String _objectName;
+    private final String _objectName;
 
     public StateBinding(String description, ValueConverter valueConverter, Location location,
             ApplicationStateManager applicationStateManager, String objectName)

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/binding/StateBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -32,11 +32,11 @@
         _applicationStateManager = applicationStateManager;
     }
 
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location)
     {
         return new StateBinding(bindingDescription, getValueConverter(), location,
-                _applicationStateManager, path);
+                _applicationStateManager, expression);
     }
 
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/translator/TranslatorBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/translator/TranslatorBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/translator/TranslatorBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/translator/TranslatorBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -28,17 +28,19 @@
  * 
  * @author Howard Lewis Ship
  * @since 4.0
+ * @deprecated Support for the translator: will be removed in release 4.1, along with
+ *             {@link org.apache.tapestry.valid.ValidField}.
  */
 public class TranslatorBindingFactory extends AbstractBindingFactory
 {
     private BeanFactory _translatorBeanFactory;
 
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location)
     {
         try
         {
-            Translator translator = (Translator) _translatorBeanFactory.get(path);
+            Translator translator = (Translator) _translatorBeanFactory.get(expression);
 
             return new TranslatorBinding(bindingDescription, getValueConverter(), location,
                     translator);

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/validator/ValidatorsBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/validator/ValidatorsBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/validator/ValidatorsBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/validator/ValidatorsBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -31,12 +31,12 @@
         _validatorFactory = validatorFactory;
     }
 
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location)
     {
         try
         {
-            List validators = _validatorFactory.constructValidatorList(root, path);
+            List validators = _validatorFactory.constructValidatorList(root, expression);
 
             return new ValidatorsBinding(bindingDescription, getValueConverter(), location,
                     validators);

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/pageload/PageLoader.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/pageload/PageLoader.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/pageload/PageLoader.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/pageload/PageLoader.java Mon Nov 14 04:55:12 2005
@@ -37,6 +37,7 @@
 import org.apache.tapestry.IPage;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.ITemplateComponent;
+import org.apache.tapestry.TapestryConstants;
 import org.apache.tapestry.asset.AssetSource;
 import org.apache.tapestry.binding.BindingConstants;
 import org.apache.tapestry.binding.BindingSource;
@@ -47,6 +48,7 @@
 import org.apache.tapestry.resolver.ComponentSpecificationResolver;
 import org.apache.tapestry.services.ComponentConstructor;
 import org.apache.tapestry.services.ComponentConstructorFactory;
+import org.apache.tapestry.services.ComponentPropertySource;
 import org.apache.tapestry.services.ComponentTemplateLoader;
 import org.apache.tapestry.spec.BindingType;
 import org.apache.tapestry.spec.ContainedComponent;
@@ -58,7 +60,8 @@
 import org.apache.tapestry.web.WebContextResource;
 
 /**
- * Runs the process of building the component hierarchy for an entire page.
+ * Implementation of tapestry.page.PageLoader. Runs the process of building the component hierarchy
+ * for an entire page.
  * <p>
  * This implementation is not threadsafe, therefore the pooled service model must be used.
  * 
@@ -120,6 +123,14 @@
     private ComponentClassProvider _componentClassProvider;
 
     /**
+     * Used to resolve meta-data properties related to a component.
+     * 
+     * @since 4.0
+     */
+
+    private ComponentPropertySource _componentPropertySource;
+
+    /**
      * Tracks the current locale into which pages are loaded.
      * 
      * @since 4.0
@@ -187,7 +198,8 @@
      *            {@link IComponentSpecification}).
      */
 
-    void bind(IComponent container, IComponent component, IContainedComponent contained)
+    void bind(IComponent container, IComponent component, IContainedComponent contained,
+            String defaultBindingPrefix)
     {
         IComponentSpecification spec = component.getSpecification();
         boolean formalOnly = !spec.getAllowInformalParameters();
@@ -281,7 +293,7 @@
 
             String description = PageloadMessages.parameterName(name);
 
-            IBinding binding = convert(container, description, BindingConstants.OGNL_PREFIX, bspec);
+            IBinding binding = convert(container, description, defaultBindingPrefix, bspec);
 
             addBindingToComponent(component, parameterName, binding);
         }
@@ -358,6 +370,10 @@
         if (_depth > _maxDepth)
             _maxDepth = _depth;
 
+        String defaultBindingPrefix = _componentPropertySource.getComponentProperty(
+                container,
+                TapestryConstants.DEFAULT_BINDING_PREFIX_NAME);
+
         List ids = new ArrayList(containerSpec.getComponentIds());
         int count = ids.size();
 
@@ -398,7 +414,7 @@
 
                 // Set up any bindings in the IContainedComponent specification
 
-                bind(container, component, contained);
+                bind(container, component, contained, defaultBindingPrefix);
 
                 // Now construct the component recusively; it gets its chance
                 // to create its subcomponents and set their bindings.
@@ -764,5 +780,11 @@
     public void setThreadLocale(ThreadLocale threadLocale)
     {
         _threadLocale = threadLocale;
+    }
+
+    /** @since 4.0 */
+    public void setComponentPropertySource(ComponentPropertySource componentPropertySource)
+    {
+        _componentPropertySource = componentPropertySource;
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ComponentPropertySourceImpl.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ComponentPropertySourceImpl.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ComponentPropertySourceImpl.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ComponentPropertySourceImpl.java Mon Nov 14 04:55:12 2005
@@ -31,6 +31,8 @@
 import org.apache.tapestry.util.PropertyHolderPropertySource;
 
 /**
+ * Implementation of tapestry.props.ComponentPropertySource.
+ * <p>
  * TODO: Figure out a testing strategy for this beast!
  * 
  * @author Howard M. Lewis Ship

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/valid/ValidatorBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/valid/ValidatorBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/valid/ValidatorBindingFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/valid/ValidatorBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -19,8 +19,7 @@
 import org.apache.hivemind.lib.BeanFactory;
 import org.apache.tapestry.IBinding;
 import org.apache.tapestry.IComponent;
-import org.apache.tapestry.binding.BindingFactory;
-import org.apache.tapestry.coerce.ValueConverter;
+import org.apache.tapestry.binding.AbstractBindingFactory;
 
 /**
  * Uses the tapestry.valid.ValidatorBeanFactory service to obtain configuration IValidator
@@ -30,41 +29,34 @@
  * @since 4.0
  * @see org.apache.tapestry.valid.ValidatorBinding
  */
-public class ValidatorBindingFactory implements BindingFactory
+public class ValidatorBindingFactory extends AbstractBindingFactory
 {
     private BeanFactory _validatorBeanFactory;
 
-    private ValueConverter _valueConverter;
-
     public void setValidatorBeanFactory(BeanFactory validatorBeanFactory)
     {
         _validatorBeanFactory = validatorBeanFactory;
     }
 
-    public void setValueConverter(ValueConverter valueConverter)
-    {
-        _valueConverter = valueConverter;
-    }
-
     /**
      * Creates and returns a {@link ValidatorBinding}. Interprets the path as a bean initializer,
      * used to locate a particular type of validator and a particular configuration of its
      * properties.
      */
 
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location)
     {
         try
         {
-            IValidator validator = (IValidator) _validatorBeanFactory.get(path);
+            IValidator validator = (IValidator) _validatorBeanFactory.get(expression);
 
-            return new ValidatorBinding(bindingDescription, _valueConverter, location, validator);
+            return new ValidatorBinding(bindingDescription, getValueConverter(), location,
+                    validator);
         }
         catch (Exception ex)
         {
             throw new ApplicationRuntimeException(ex.getMessage(), location, ex);
         }
     }
-
 }

Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java Mon Nov 14 04:55:12 2005
@@ -17,6 +17,7 @@
 import java.io.CharArrayWriter;
 import java.io.PrintWriter;
 
+import org.apache.commons.logging.Log;
 import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.Locatable;
 import org.apache.hivemind.Location;
@@ -24,7 +25,6 @@
 import org.apache.hivemind.test.AggregateArgumentsMatcher;
 import org.apache.hivemind.test.ArgumentMatcher;
 import org.apache.hivemind.test.HiveMindTestCase;
-import org.apache.hivemind.test.TypeMatcher;
 import org.apache.tapestry.components.ILinkComponent;
 import org.apache.tapestry.engine.IEngineService;
 import org.apache.tapestry.engine.ILink;
@@ -164,11 +164,9 @@
 
     protected IBinding newBinding(Location location)
     {
-        MockControl control = newControl(IBinding.class);
-        IBinding binding = (IBinding) control.getMock();
+        IBinding binding = newBinding();
 
-        binding.getLocation();
-        control.setReturnValue(location);
+        trainGetLocation(binding, location);
 
         return binding;
     }
@@ -475,5 +473,22 @@
         link.getParameterNames();
 
         setReturnValue(link, names);
+    }
+
+    protected void trainGetSpecification(IComponent component, IComponentSpecification spec)
+    {
+        component.getSpecification();
+        setReturnValue(component, spec);
+    }
+
+    protected void trainGetBinding(IComponent component, String name, IBinding binding)
+    {
+        component.getBinding(name);
+        setReturnValue(component, binding);
+    }
+
+    protected Log newLog()
+    {
+        return (Log) newMock(Log.class);
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java Mon Nov 14 04:55:12 2005
@@ -48,7 +48,7 @@
 
         replayControls();
 
-        ListenerMethodBinding b = new ListenerMethodBinding(component, "foo", "param", vc, l);
+        ListenerMethodBinding b = new ListenerMethodBinding("param", vc, l, component, "foo");
 
         assertSame(b, b.getObject());
         assertSame(component, b.getComponent());
@@ -68,7 +68,7 @@
 
         replayControls();
 
-        ListenerMethodBinding b = new ListenerMethodBinding(component, "foo", "param", vc, l);
+        ListenerMethodBinding b = new ListenerMethodBinding("param", vc, l, component, "foo");
 
         String toString = b.toString();
         String description = toString.substring(toString.indexOf('[') + 1, toString.length() - 1);
@@ -99,7 +99,7 @@
 
         replayControls();
 
-        ListenerMethodBinding b = new ListenerMethodBinding(component, "foo", "param", vc, l);
+        ListenerMethodBinding b = new ListenerMethodBinding("param", vc, l, component, "foo");
 
         try
         {
@@ -133,7 +133,7 @@
 
         replayControls();
 
-        ListenerMethodBinding b = new ListenerMethodBinding(component, "foo", "param", vc, l);
+        ListenerMethodBinding b = new ListenerMethodBinding("param", vc, l, component, "foo");
 
         try
         {
@@ -169,7 +169,7 @@
 
         replayControls();
 
-        ListenerMethodBinding b = new ListenerMethodBinding(component, "foo", "param", vc, l);
+        ListenerMethodBinding b = new ListenerMethodBinding("param", vc, l, component, "foo");
 
         try
         {

Copied: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/PageLoaderTest.java (from r332813, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestPageLoader.java)
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/PageLoaderTest.java?p2=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/PageLoaderTest.java&p1=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestPageLoader.java&r1=332813&r2=344110&rev=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestPageLoader.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/PageLoaderTest.java Mon Nov 14 04:55:12 2005
@@ -17,17 +17,17 @@
 import org.apache.commons.logging.Log;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.Location;
-import org.apache.hivemind.test.HiveMindTestCase;
+import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.IBinding;
 import org.apache.tapestry.IComponent;
 import org.apache.tapestry.binding.BindingSource;
+import org.apache.tapestry.services.ComponentPropertySource;
 import org.apache.tapestry.spec.BindingSpecification;
 import org.apache.tapestry.spec.BindingType;
 import org.apache.tapestry.spec.ComponentSpecification;
 import org.apache.tapestry.spec.ContainedComponent;
 import org.apache.tapestry.spec.IComponentSpecification;
 import org.apache.tapestry.spec.ParameterSpecification;
-import org.easymock.MockControl;
 
 /**
  * Additional tests for {@link org.apache.tapestry.pageload.PageLoader}. Ultimately, testing this
@@ -36,48 +36,18 @@
  * @author Howard M. Lewis Ship
  * @since 4.0
  */
-public class TestPageLoader extends HiveMindTestCase
+public class PageLoaderTest extends BaseComponentTestCase
 {
-    public IComponent newComponent(IComponentSpecification spec)
-    {
-        MockControl control = newControl(IComponent.class);
-        IComponent component = (IComponent) control.getMock();
-
-        component.getSpecification();
-        control.setReturnValue(spec);
-
-        return component;
-    }
-
-    private IBinding newBinding()
-    {
-        return (IBinding) newMock(IBinding.class);
-    }
-
-    private IBinding newBinding(Location l)
-    {
-        MockControl control = newControl(IBinding.class);
-        IBinding binding = (IBinding) control.getMock();
-
-        binding.getLocation();
-        control.setReturnValue(l);
-
-        return binding;
-    }
 
     public void testAddDuplicateBindingFails()
     {
-        MockControl componentc = newControl(IComponent.class);
-        IComponent component = (IComponent) componentc.getMock();
-
+        IComponent component = newComponent();
         Location l1 = newLocation();
         Location l2 = newLocation();
-
         IBinding oldBinding = newBinding(l1);
         IBinding newBinding = newBinding(l2);
 
-        component.getBinding("dupe");
-        componentc.setReturnValue(oldBinding);
+        trainGetBinding(component, "dupe", oldBinding);
 
         replayControls();
 
@@ -89,7 +59,7 @@
         catch (ApplicationRuntimeException ex)
         {
             assertEquals(
-                    "A binding for parameter dupe conflicts with a previous binding (at classpath:/org/apache/tapestry/pageload/TestPageLoader, line 1).",
+                    "A binding for parameter dupe conflicts with a previous binding (at classpath:/org/apache/tapestry/pageload/PageLoaderTest, line 1).",
                     ex.getMessage());
             assertSame(component, ex.getComponent());
             assertSame(l2, ex.getLocation());
@@ -98,11 +68,11 @@
 
     public void testBindAlias()
     {
-        MockControl containerc = newControl(IComponent.class);
-        IComponent container = (IComponent) containerc.getMock();
-
-        MockControl componentc = newControl(IComponent.class);
-        IComponent component = (IComponent) componentc.getMock();
+        IComponent container = newComponent();
+        IComponent component = newComponent();
+        Log log = newLog();
+        IBinding binding = newBinding();
+        BindingSource source = newBindingSource();
 
         ParameterSpecification pspec = new ParameterSpecification();
         pspec.setParameterName("fred");
@@ -122,23 +92,21 @@
         IComponentSpecification spec = new ComponentSpecification();
         spec.addParameter(pspec);
 
-        component.getSpecification();
-        componentc.setReturnValue(spec);
-
-        Log log = (Log) newMock(Log.class);
+        trainGetSpecification(component, spec);
 
         log
-                .warn("Parameter barney (for component FredComponent, at classpath:/org/apache/tapestry/pageload/TestPageLoader, line 1) was bound; this parameter has been deprecated, bind parameter fred instead.");
+                .warn("Parameter barney (for component FredComponent, at classpath:/org/apache/tapestry/pageload/PageLoaderTest, line 1) was bound; this parameter has been deprecated, bind parameter fred instead.");
 
-        IBinding binding = newBinding();
-        MockControl sourcec = newControl(BindingSource.class);
-        BindingSource source = (BindingSource) sourcec.getMock();
-
-        source.createBinding(container, "parameter barney", "an-expression", "ognl", l);
-        sourcec.setReturnValue(binding);
+        trainCreateBinding(
+                source,
+                container,
+                "parameter barney",
+                "an-expression",
+                "ognl",
+                l,
+                binding);
 
-        component.getBinding("fred");
-        componentc.setReturnValue(null);
+        trainGetBinding(component, "fred", null);
 
         component.setBinding("fred", binding);
 
@@ -148,18 +116,30 @@
         loader.setLog(log);
         loader.setBindingSource(source);
 
-        loader.bind(container, component, contained);
+        loader.bind(container, component, contained, "ognl");
 
         verifyControls();
     }
 
-    public void testBindDeprecated()
+    private void trainCreateBinding(BindingSource source, IComponent container, String description,
+            String expression, String defaultBindingPrefix, Location l, IBinding binding)
+    {
+        source.createBinding(container, description, expression, defaultBindingPrefix, l);
+        setReturnValue(source, binding);
+    }
+
+    protected BindingSource newBindingSource()
     {
-        MockControl containerc = newControl(IComponent.class);
-        IComponent container = (IComponent) containerc.getMock();
+        return (BindingSource) newMock(BindingSource.class);
+    }
 
-        MockControl componentc = newControl(IComponent.class);
-        IComponent component = (IComponent) componentc.getMock();
+    public void testBindDeprecated()
+    {
+        IComponent container = newComponent();
+        IComponent component = newComponent();
+        IBinding binding = newBinding();
+        BindingSource source = newBindingSource();
+        Log log = newLog();
 
         ParameterSpecification pspec = new ParameterSpecification();
         pspec.setParameterName("fred");
@@ -179,25 +159,16 @@
         IComponentSpecification spec = new ComponentSpecification();
         spec.addParameter(pspec);
 
-        component.getSpecification();
-        componentc.setReturnValue(spec);
-
-        Log log = (Log) newMock(Log.class);
+        trainGetSpecification(component, spec);
 
         log
-                .warn("Parameter fred (at classpath:/org/apache/tapestry/pageload/TestPageLoader, line 1) has been deprecated, "
+                .warn("Parameter fred (at classpath:/org/apache/tapestry/pageload/PageLoaderTest, line 1) has been deprecated, "
                         + "and may be removed in a future release. Consult the documentation for component FredComponent to "
                         + "determine an appropriate replacement.");
 
-        IBinding binding = newBinding();
-        MockControl sourcec = newControl(BindingSource.class);
-        BindingSource source = (BindingSource) sourcec.getMock();
-
-        source.createBinding(container, "parameter fred", "an-expression", "ognl", l);
-        sourcec.setReturnValue(binding);
+        trainCreateBinding(source, container, "parameter fred", "an-expression", "ognl", l, binding);
 
-        component.getBinding("fred");
-        componentc.setReturnValue(null);
+        trainGetBinding(component, "fred", null);
 
         component.setBinding("fred", binding);
 
@@ -207,8 +178,13 @@
         loader.setLog(log);
         loader.setBindingSource(source);
 
-        loader.bind(container, component, contained);
+        loader.bind(container, component, contained, "ognl");
 
         verifyControls();
+    }
+
+    protected ComponentPropertySource newPropertySource()
+    {
+        return (ComponentPropertySource) newMock(ComponentPropertySource.class);
     }
 }

Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestNamespaceClassSearchComponentClassProvider.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestNamespaceClassSearchComponentClassProvider.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestNamespaceClassSearchComponentClassProvider.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/pageload/TestNamespaceClassSearchComponentClassProvider.java Mon Nov 14 04:55:12 2005
@@ -61,7 +61,7 @@
         ClassFinder finder = newClassFinder(
                 "org.apache.tapestry.pageload",
                 "bar.Baz",
-                TestPageLoader.class);
+                PageLoaderTest.class);
 
         IComponentSpecification spec = newSpec();
 
@@ -74,7 +74,7 @@
         provider.setClassFinder(finder);
         provider.setPackagesName("zip");
 
-        assertEquals(TestPageLoader.class.getName(), provider.provideComponentClassName(context));
+        assertEquals(PageLoaderTest.class.getName(), provider.provideComponentClassName(context));
 
         verifyControls();
     }

Modified: jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBinding.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBinding.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBinding.java (original)
+++ jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBinding.java Mon Nov 14 04:55:12 2005
@@ -32,9 +32,9 @@
  */
 public class UserAttributeBinding extends AbstractBinding
 {
-    private PortletRequest _request;
+    private final PortletRequest _request;
 
-    private String _attributeName;
+    private final String _attributeName;
 
     public UserAttributeBinding(String description, ValueConverter valueConverter,
             Location location, PortletRequest request, String attributeName)

Modified: jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBindingFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBindingFactory.java?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBindingFactory.java (original)
+++ jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/bindings/UserAttributeBindingFactory.java Mon Nov 14 04:55:12 2005
@@ -19,8 +19,10 @@
 import org.apache.hivemind.Location;
 import org.apache.tapestry.IBinding;
 import org.apache.tapestry.IComponent;
+import org.apache.tapestry.binding.AbstractBindingFactory;
 import org.apache.tapestry.binding.BindingFactory;
 import org.apache.tapestry.coerce.ValueConverter;
+import org.apache.tapestry.form.validator.AbstractValidatorWrapper;
 
 /**
  * Factory used to create {@link org.apache.tapestry.portlet.bindings.UserAttributeBinding}s.
@@ -28,30 +30,23 @@
  * @author Howard M. Lewis Ship
  * @since 4.0
  */
-public class UserAttributeBindingFactory implements BindingFactory
+public class UserAttributeBindingFactory extends AbstractBindingFactory
 {
     private PortletRequest _request;
 
-    private ValueConverter _valueConverter;
-
     /**
      * Interprets the path as the Portlet user attribute name.
      */
 
-    public IBinding createBinding(IComponent root, String bindingDescription, String path,
+    public IBinding createBinding(IComponent root, String bindingDescription, String expression,
             Location location)
     {
-        return new UserAttributeBinding(bindingDescription, _valueConverter, location, _request,
-                path);
+        return new UserAttributeBinding(bindingDescription, getValueConverter(), location,
+                _request, expression);
     }
 
     public void setRequest(PortletRequest request)
     {
         _request = request;
-    }
-
-    public void setValueConverter(ValueConverter valueConverter)
-    {
-        _valueConverter = valueConverter;
     }
 }

Modified: jakarta/tapestry/trunk/src/documentation/content/xdocs/QuickStart/index.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/src/documentation/content/xdocs/QuickStart/index.xml?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/src/documentation/content/xdocs/QuickStart/index.xml (original)
+++ jakarta/tapestry/trunk/src/documentation/content/xdocs/QuickStart/index.xml Mon Nov 14 04:55:12 2005
@@ -32,7 +32,7 @@
 
 <p>
 This is the Tapestry Quick Start; basic documentation to get your started using Tapestry.
-The <link href="../UsersGuide/">Users Guide</link> is conceptual; it provides the gritty details.
+The <link href="../UsersGuide/index.html">Users Guide</link> is conceptual; it provides the gritty details.
 This Quick Start is about getting you running with Tapestry.
 </p>
 

Modified: jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/bindings.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/bindings.xml?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/bindings.xml (original)
+++ jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/bindings.xml Mon Nov 14 04:55:12 2005
@@ -39,7 +39,7 @@
 When binding a component parameter, the value to be bound may be just a literal string, or
 it could be an &OGNL; expression, or subject to any of a number of other interpretations.  Tapestry
 uses a <em>prefix</em>   value, such as "ognl:", or "message:", to identify how the rest of the
-value is to be interprted.  The prefix identifies the <em>binding type</em>:
+value is to be interpreted.  The prefix identifies the <em>binding type</em>:
 </p>  
     
 
@@ -148,7 +148,8 @@
 
 <p>
 What happens when you omit a binding prefix?  In a page or component <em>template</em>, the value it is assumed to be a literal string, as with the "literal:" prefix.
-In a page or component specification, or inside a Java annotation, the value is assumed to be an &OGNL; expression, as with the "ognl:" prefix.  You will occasionally have
+In a page or component specification, or inside a Java annotation, the value is assumed to be an &OGNL; expression, as with the "ognl:" prefix
+(but even this can be configured).  You will occasionally have
 to use an explicit "literal:" prefix inside such files.
 </p>
 

Modified: jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/configuration.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/configuration.xml?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/configuration.xml (original)
+++ jakarta/tapestry/trunk/src/documentation/content/xdocs/UsersGuide/configuration.xml Mon Nov 14 04:55:12 2005
@@ -354,6 +354,16 @@
 </tr>
 
   <tr>
+    <td>org.apache.tapestry.default-binding-prefix</td>
+    <td>
+      The default binding to use when no explicit binding prefix is provided. This is typically set inside a page or
+      component specification, or within an application specification or library specification (to provide the default
+      for all pages and components). If not otherwise specified,
+      the default binding prefix is "ognl". 
+    </td>
+  </tr>
+
+  <tr>
     <td>org.apache.tapestry.default-cookie-max-age</td>
     <td>
       The default max age (in seconds) for cookies written by Tapestry, including the cookie used

Modified: jakarta/tapestry/trunk/status.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=344110&r1=344109&r2=344110&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Mon Nov 14 04:55:12 2005
@@ -37,6 +37,10 @@
       <action context="code" dev="open">Handle change of locale correctly, by reloading new instance of page in proper locale</action>
       <action context="code" dev="open">Intersertials</action>
       <action context="code" dev="open">POJO page and component classes</action>
+      <action context="documentation" dev="open">Extend the QuickStart tutorial</action>
+      <action context="code" dev="open">Proper management of page/component specification and template caches with
+      automatic invalidation</action>
+      <action context="code" dev="open">Integration testing framework</action>
     </actions>
     <!-- Add todo items. @context is an arbitrary string. Eg:
     <actions priority="high">
@@ -51,7 +55,7 @@
   </todo>
   <changes>
     <release version="4.0-beta-14" date="unreleased">
-      
+      <action type="update" dev="HLS">Make default binding prefix configurable</action>
     </release>
     <release version="4.0-beta-13" date="Nov 12 2005">
       <action type="update" dev="HLS">Switch to HiveMind 1.1 (final)</action>



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org