You've sent this to the Gradle mailing list. Did you mean the Groovy mailing
list?
On 16/09/2012, at 5:30 AM, Alan Krueger wrote:
> On the Groovy "Using methodMissing and propertyMissing" page, it has this
> sample code:
> class Foo
>
> {
> def
> storage = [:]
>
> def
> propertyMissing(String name, value)
> { storage[name] = value }
> def
>
> propertyMissing(String name) { storage[name] }
> }
>
> def f = new
> Foo()
> f.foo =
> "bar"
>
> assertEquals
> "bar", f.foo
> Plugging this into foo.groovy and running that as a Groovy script (changing
> the assertEquals to a println), it works as expected. Because I've been
> having trouble getting propertyMissing to work properly for me, I tried to
> turn the above into a JUnit test:
> import static
> org.junit.Assert.assertEquals
>
>
>
>
>
> import org.junit.Test
>
>
>
>
>
> class PropertyMissingTest {
>
>
> class Foo {
>
>
> def storage = [:]
>
>
> def propertyMissing(String name, value) { storage[name] =
> value }
>
>
> def propertyMissing(String name) { storage[name] }
>
>
> }
>
>
>
>
>
> @Test
>
>
> void test() {
>
>
> def f = new Foo()
>
>
> f.foo = "bar"
>
>
> assertEquals "bar", f.foo
>
>
> }
>
>
> }
>
> Unfortunately, when I run that I get this:
> java.lang.VerifyError: (class: PropertyMissingTest$Foo, method:
> propertyMissing signature:
> (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;) Wrong return type
> in function
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:186)
> at PropertyMissingTest.class$(PropertyMissingTest.groovy)
> at
> PropertyMissingTest.$get$$class$PropertyMissingTest$Foo(PropertyMissingTest.groovy)
> at PropertyMissingTest.test(PropertyMissingTest.groovy:14)
> [...]
> I've gone over this multiple times and am a bit stumped. Any suggestions on
> why this isn't working?
>
--
Luke Daley
Principal Engineer, Gradleware
http://gradleware.com
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email