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/09/09 22:43:48 UTC
svn commit: r279873 - in /jakarta/tapestry/trunk: ./
framework/src/descriptor/META-INF/
framework/src/java/org/apache/tapestry/html/
framework/src/java/org/apache/tapestry/services/impl/
framework/src/test/org/apache/tapestry/ framework/src/test/org/ap...
Author: hlship
Date: Fri Sep 9 13:43:41 2005
New Revision: 279873
URL: http://svn.apache.org/viewcvs?rev=279873&view=rev
Log:
TAPESTRY-535: Colons in an OGNL expression may force it to be intepreted as a literal string, not an expression
Modified:
jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.bindings.xml
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java
jakarta/tapestry/trunk/status.xml
Modified: jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.bindings.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.bindings.xml?rev=279873&r1=279872&r2=279873&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.bindings.xml (original)
+++ jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.bindings.xml Fri Sep 9 13:43:41 2005
@@ -171,7 +171,6 @@
<invoke-factory>
<construct class="org.apache.tapestry.services.impl.BindingSourceImpl">
- <set-service property="literalBindingFactory" service-id="LiteralBindingFactory"/>
<set-configuration property="contributions" configuration-id="BindingFactories"/>
</construct>
</invoke-factory>
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc?rev=279873&r1=279872&r2=279873&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc Fri Sep 9 13:43:41 2005
@@ -45,7 +45,7 @@
</parameter>
<parameter name="doctype"
- default-value='HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"'>
+ default-value='literal:HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"'>
<description>
Used to specify the full definition of the DOCTYPE element in the response page,
for example 'math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd"'
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java?rev=279873&r1=279872&r2=279873&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java Fri Sep 9 13:43:41 2005
@@ -35,8 +35,6 @@
{
private List _contributions;
- private BindingFactory _literalBindingFactory;
-
/**
* Keyed on prefix, value is {@link BindingFactory}.
*/
@@ -64,27 +62,23 @@
if (colonx > 1)
{
- prefix = reference.substring(0, colonx);
+ String pathPrefix = reference.substring(0, colonx);
+
+ if (_factoryMap.containsKey(pathPrefix))
+ {
+ prefix = pathPrefix;
- if (_factoryMap.containsKey(prefix))
path = reference.substring(colonx + 1);
+ }
}
BindingFactory factory = (BindingFactory) _factoryMap.get(prefix);
- if (factory == null)
- factory = _literalBindingFactory;
-
return factory.createBinding(component, bindingDescription, path, location);
}
public void setContributions(List contributions)
{
_contributions = contributions;
- }
-
- public void setLiteralBindingFactory(BindingFactory literalBindingFactory)
- {
- _literalBindingFactory = literalBindingFactory;
}
}
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=279873&r1=279872&r2=279873&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 Fri Sep 9 13:43:41 2005
@@ -329,4 +329,8 @@
getControl(locatable).setReturnValue(location);
}
+ protected IBinding newBinding()
+ {
+ return (IBinding) newMock(IBinding.class);
+ }
}
Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java?rev=279873&r1=279872&r2=279873&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java Fri Sep 9 13:43:41 2005
@@ -17,7 +17,7 @@
import java.util.Collections;
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.BindingConstants;
@@ -30,27 +30,30 @@
* @author Howard Lewis Ship
* @since 4.0
*/
-public class TestBindingSource extends HiveMindTestCase
+public class TestBindingSource extends BaseComponentTestCase
{
public void testNoPrefix()
{
- IComponent component = (IComponent) newMock(IComponent.class);
- IBinding binding = (IBinding) newMock(IBinding.class);
+ IComponent component = newComponent();
+ IBinding binding = newBinding();
+ BindingFactory factory = newFactory();
+ Location l = newLocation();
- MockControl factoryControl = newControl(BindingFactory.class);
- BindingFactory factory = (BindingFactory) factoryControl.getMock();
-
- Location l = fabricateLocation(99);
+ BindingPrefixContribution c = new BindingPrefixContribution();
+ c.setPrefix(BindingConstants.LITERAL_PREFIX);
+ c.setFactory(factory);
// Training
factory.createBinding(component, "foo", "a literal value without a prefix", l);
- factoryControl.setReturnValue(binding);
+ getControl(factory).setReturnValue(binding);
replayControls();
BindingSourceImpl bs = new BindingSourceImpl();
- bs.setLiteralBindingFactory(factory);
+ bs.setContributions(Collections.singletonList(c));
+
+ bs.initializeService();
IBinding actual = bs.createBinding(
component,
@@ -66,18 +69,15 @@
public void testNoPrefixWithDefault()
{
- IComponent component = (IComponent) newMock(IComponent.class);
- IBinding binding = (IBinding) newMock(IBinding.class);
-
- MockControl factoryControl = newControl(BindingFactory.class);
- BindingFactory factory = (BindingFactory) factoryControl.getMock();
-
- Location l = fabricateLocation(99);
+ IComponent component = newComponent();
+ IBinding binding = newBinding();
+ BindingFactory factory = newFactory();
+ Location l = newLocation();
// Training
factory.createBinding(component, "foo", "an-expression", l);
- factoryControl.setReturnValue(binding);
+ getControl(factory).setReturnValue(binding);
BindingPrefixContribution c = new BindingPrefixContribution();
c.setPrefix(BindingConstants.OGNL_PREFIX);
@@ -103,18 +103,15 @@
public void testKnownPrefix()
{
- IComponent component = (IComponent) newMock(IComponent.class);
- IBinding binding = (IBinding) newMock(IBinding.class);
-
- MockControl factoryControl = newControl(BindingFactory.class);
- BindingFactory factory = (BindingFactory) factoryControl.getMock();
-
- Location l = fabricateLocation(99);
+ IComponent component = newComponent();
+ IBinding binding = newBinding();
+ BindingFactory factory = newFactory();
+ Location l = newLocation();
// Training
factory.createBinding(component, "bar", "path part of locator", l);
- factoryControl.setReturnValue(binding);
+ getControl(factory).setReturnValue(binding);
BindingPrefixContribution c = new BindingPrefixContribution();
c.setPrefix("prefix");
@@ -141,30 +138,24 @@
public void testPrefixNoMatch()
{
- IComponent component = (IComponent) newMock(IComponent.class);
- IBinding binding = (IBinding) newMock(IBinding.class);
-
- MockControl factoryControl = newControl(BindingFactory.class);
- BindingFactory literalFactory = (BindingFactory) factoryControl.getMock();
-
- BindingFactory factory = (BindingFactory) newMock(BindingFactory.class);
-
- Location l = fabricateLocation(99);
+ IComponent component = newComponent();
+ IBinding binding = newBinding();
+ BindingFactory factory = newFactory();
+ Location l = newLocation();
// Training
- literalFactory.createBinding(component, "zip", "unknown:path part of locator", l);
- factoryControl.setReturnValue(binding);
+ factory.createBinding(component, "zip", "unknown:path part of locator", l);
+ getControl(factory).setReturnValue(binding);
BindingPrefixContribution c = new BindingPrefixContribution();
- c.setPrefix("prefix");
+ c.setPrefix(BindingConstants.LITERAL_PREFIX);
c.setFactory(factory);
replayControls();
BindingSourceImpl bs = new BindingSourceImpl();
bs.setContributions(Collections.singletonList(c));
- bs.setLiteralBindingFactory(literalFactory);
bs.initializeService();
@@ -178,5 +169,10 @@
assertSame(binding, actual);
verifyControls();
+ }
+
+ protected BindingFactory newFactory()
+ {
+ return (BindingFactory) newMock(BindingFactory.class);
}
}
Modified: jakarta/tapestry/trunk/status.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=279873&r1=279872&r2=279873&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Fri Sep 9 13:43:41 2005
@@ -53,7 +53,8 @@
<release version="4.0-beta-7" date="unreleased">
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-341">Report location of errors initializing managed beans</action>
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-270" due-to="Andy Hedges">FAQ Code example contains bug</action>
- <action type="fix" dev="HLS" fixes-bug="TAPESTRY-583">Spurious ERROR message (probably should be WARN or INFO) when template does not refer to components in page spec</action>
+ <action type="fix" dev="HLS" fixes-bug="TAPESTRY-583">Spurious ERROR message (probably should be WARN or INFO) when template does not refer to components in page spec</action>
+ <action type="fix" dev="HLS" fixes-bug="TAPESTRY-535">Colons in an OGNL expression may force it to be intepreted as a literal string, not an expression</action>
</release>
<release version="4.0-beta-6" date="Sep 7 2005">
<action type="update" dev="HLS" due-to="Henri Yandell">Convert Tapestry repository from CVS to SVN</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org