You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/12/21 19:41:00 UTC
svn commit: r489433 - in /tapestry/tapestry4/trunk: tapestry-contrib/pom.xml
tapestry-framework/src/java/org/apache/tapestry/enhance/InjectMetaWorker.java
tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectMetaWorker.java
Author: jkuhnert
Date: Thu Dec 21 10:41:00 2006
New Revision: 489433
URL: http://svn.apache.org/viewvc?view=rev&rev=489433
Log:
Resolves regression where a previous change I made broke correctly parsing boolean values in meta.
Made jboss dependency for contrib a scope of "provided" .
Modified:
tapestry/tapestry4/trunk/tapestry-contrib/pom.xml
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectMetaWorker.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectMetaWorker.java
Modified: tapestry/tapestry4/trunk/tapestry-contrib/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/pom.xml?view=diff&rev=489433&r1=489432&r2=489433
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/pom.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/pom.xml Thu Dec 21 10:41:00 2006
@@ -25,6 +25,7 @@
<groupId>jboss</groupId>
<artifactId>jboss-j2ee</artifactId>
<version>4.0.2</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>hivemind</groupId>
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectMetaWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectMetaWorker.java?view=diff&rev=489433&r1=489432&r2=489433
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectMetaWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectMetaWorker.java Thu Dec 21 10:41:00 2006
@@ -42,11 +42,9 @@
private ComponentPropertySource _source;
private ValueConverter _valueConverter;
-
+
private Map _primitiveParser = new HashMap();
-
{
- _primitiveParser.put(boolean.class, "java.lang.Boolean.getBoolean");
_primitiveParser.put(short.class, "java.lang.Short.parseShort");
_primitiveParser.put(int.class, "java.lang.Integer.parseInt");
_primitiveParser.put(long.class, "java.lang.Long.parseLong");
@@ -85,8 +83,12 @@
{
addPrimitive(op, metaKey, propertyName, sig, sourceName, parser, location);
return;
+ } else if (propertyType == boolean.class)
+ {
+ addBoolean(op, metaKey, propertyName, sig, sourceName, location);
+ return;
}
-
+
if (propertyType == char.class)
{
addCharacterPrimitive(op, metaKey, propertyName, sig, sourceName, location);
@@ -110,7 +112,22 @@
op.addMethod(Modifier.PUBLIC, sig, builder.toString(), location);
}
-
+
+ private void addBoolean(EnhancementOperation op, String metaKey, String propertyName,
+ MethodSignature sig, String sourceName, Location location)
+ {
+ BodyBuilder builder = new BodyBuilder();
+ builder.begin();
+ builder.addln(
+ "java.lang.String meta = {0}.getComponentProperty(this, \"{1}\");",
+ sourceName,
+ metaKey);
+ builder.addln("return java.lang.Boolean.valueOf(meta).booleanValue();");
+ builder.end();
+
+ op.addMethod(Modifier.PUBLIC, sig, builder.toString(), location);
+ }
+
private void addCharacterPrimitive(EnhancementOperation op, String metaKey,
String propertyName, MethodSignature sig, String sourceName, Location location)
{
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectMetaWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectMetaWorker.java?view=diff&rev=489433&r1=489432&r2=489433
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectMetaWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectMetaWorker.java Thu Dec 21 10:41:00 2006
@@ -52,9 +52,8 @@
{
return newMock(ComponentPropertySource.class);
}
-
- @Test
- public void testPrimitive()
+
+ public void test_Primitive()
{
Location l = newLocation();
InjectSpecification spec = newSpec("fooBar", "foo.bar", l);
@@ -92,9 +91,46 @@
verify();
}
+
+ public void test_Boolean()
+ {
+ Location l = newLocation();
+ InjectSpecification spec = newSpec("fooBar", "foo.bar", l);
+
+ ComponentPropertySource source = newSource();
+
+ EnhancementOperation op = newMock(EnhancementOperation.class);
+
+ expect(op.getPropertyType("fooBar")).andReturn(boolean.class);
- @Test
- public void testCharacter()
+ op.claimReadonlyProperty("fooBar");
+
+ MethodSignature sig = new MethodSignature(boolean.class, "getFooBar", null, null);
+
+ expect(op.addInjectedField(InjectMetaWorker.SOURCE_NAME, ComponentPropertySource.class, source)).andReturn("_source");
+
+ expect(op.getAccessorMethodName("fooBar")).andReturn("getFooBar");
+
+ BodyBuilder builder = new BodyBuilder();
+ builder.begin();
+ builder.addln("java.lang.String meta = _source.getComponentProperty(this, \"foo.bar\");");
+ builder.addln("return java.lang.Boolean.valueOf(meta).booleanValue();");
+ builder.end();
+
+ op.addMethod(Modifier.PUBLIC, sig, builder.toString(), l);
+
+ replay();
+
+ InjectMetaWorker worker = new InjectMetaWorker();
+
+ worker.setSource(source);
+
+ worker.performEnhancement(op, spec);
+
+ verify();
+ }
+
+ public void test_Character()
{
Location l = newLocation();
InjectSpecification spec = newSpec("fooBar", "foo.bar", l);
@@ -132,9 +168,8 @@
verify();
}
-
- @Test
- public void testObject()
+
+ public void test_Object()
{
Location l = newLocation();
InjectSpecification spec = newSpec("fooBar", "foo.bar", l);