Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 48358 invoked from network); 28 Nov 2006 01:55:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Nov 2006 01:55:44 -0000 Received: (qmail 55508 invoked by uid 500); 28 Nov 2006 01:55:53 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 55360 invoked by uid 500); 28 Nov 2006 01:55:52 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 55349 invoked by uid 99); 28 Nov 2006 01:55:52 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Nov 2006 17:55:52 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Nov 2006 17:55:42 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 780E41A9846; Mon, 27 Nov 2006 17:55:05 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r479841 - in /geronimo/xbean/trunk/xbean-reflect/src: main/java/org/apache/xbean/recipe/ObjectRecipe.java test/java/org/apache/xbean/recipe/Car.java test/java/org/apache/xbean/recipe/StaticRecipeTest.java Date: Tue, 28 Nov 2006 01:55:05 -0000 To: scm@geronimo.apache.org From: dblevins@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061128015505.780E41A9846@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dblevins Date: Mon Nov 27 17:55:03 2006 New Revision: 479841 URL: http://svn.apache.org/viewvc?view=rev&rev=479841 Log: Added a bug in last couple commits that wasn't picked up by the existing test cases. Fixed the bug and added a new test case which seems to cover it. Added: geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/Car.java geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/StaticRecipeTest.java Modified: geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectRecipe.java Modified: geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectRecipe.java URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectRecipe.java?view=diff&rev=479841&r1=479840&r2=479841 ============================================================================== --- geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectRecipe.java (original) +++ geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectRecipe.java Mon Nov 27 17:55:03 2006 @@ -114,8 +114,7 @@ } public Object getProperty(String name) { - if (name == null) throw new NullPointerException("name is null"); - Object value = properties.get(name); + Object value = properties.get(new Property(name)); return value; } @@ -247,7 +246,7 @@ private Object[] extractConstructorArgs(Map propertyValues, Class[] constructorArgTypes) { Object[] parameters = new Object[constructorArgNames.length]; for (int i = 0; i < constructorArgNames.length; i++) { - String name = constructorArgNames[i]; + Property name = new Property(constructorArgNames[i]); Class type = constructorArgTypes[i]; Object value; Added: geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/Car.java URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/Car.java?view=auto&rev=479841 ============================================================================== --- geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/Car.java (added) +++ geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/Car.java Mon Nov 27 17:55:03 2006 @@ -0,0 +1,42 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +package org.apache.xbean.recipe; + +/** + * @version $Rev$ $Date$ + */ +public class Car { + + private final Person driver; + private Person passenger; + + public Car(Person driver) { + this.driver = driver; + } + + public Person getDriver() { + return driver; + } + + public Person getPassenger() { + return passenger; + } + + public void setPassenger(Person passenger) { + this.passenger = passenger; + } +} Added: geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/StaticRecipeTest.java URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/StaticRecipeTest.java?view=auto&rev=479841 ============================================================================== --- geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/StaticRecipeTest.java (added) +++ geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/StaticRecipeTest.java Mon Nov 27 17:55:03 2006 @@ -0,0 +1,42 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +package org.apache.xbean.recipe; + +import junit.framework.TestCase; +import org.apache.xbean.propertyeditor.PropertyEditors; + +import java.net.URL; + +public class StaticRecipeTest extends TestCase { + + protected void setUp() throws Exception { + PropertyEditors.class.getName(); + } + + public void testAll() throws Exception { + + Person driver = new Person("Joe", 21, new URL("http://www.acme.org")); + + ObjectRecipe objectRecipe = new ObjectRecipe(Car.class, new String[]{"driver"}, new Class[]{Person.class}); + + objectRecipe.setProperty("driver", new StaticRecipe(driver)); + + Car actual = (Car) objectRecipe.create(Car.class.getClassLoader()); + assertSame("driver", driver, actual.getDriver()); + } + +}