Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 29602 invoked from network); 1 Aug 2006 16:53:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 1 Aug 2006 16:53:34 -0000 Received: (qmail 66981 invoked by uid 500); 1 Aug 2006 16:53:34 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 66957 invoked by uid 500); 1 Aug 2006 16:53:34 -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 66946 invoked by uid 99); 1 Aug 2006 16:53:34 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Aug 2006 09:53:34 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Aug 2006 09:53:33 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 09F361A981A; Tue, 1 Aug 2006 09:53:13 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r427645 - in /geronimo/xbean/trunk: xbean-spring-v1/src/main/java/org/apache/xbean/spring/context/v1/ xbean-spring-v1/src/test/resources/org/apache/xbean/spring/context/ xbean-spring-v2/src/main/java/org/apache/xbean/spring/context/v2/ xbea... Date: Tue, 01 Aug 2006 16:53:12 -0000 To: scm@geronimo.apache.org From: gnodet@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060801165313.09F361A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: gnodet Date: Tue Aug 1 09:53:11 2006 New Revision: 427645 URL: http://svn.apache.org/viewvc?rev=427645&view=rev Log: XBEAN-24: Support mixed nested properties and complex elements Modified: geronimo/xbean/trunk/xbean-spring-v1/src/main/java/org/apache/xbean/spring/context/v1/XBeanXmlBeanDefinitionParser.java geronimo/xbean/trunk/xbean-spring-v1/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml geronimo/xbean/trunk/xbean-spring-v2/src/main/java/org/apache/xbean/spring/context/v2/XBeanNamespaceHandler.java geronimo/xbean/trunk/xbean-spring-v2/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml Modified: geronimo/xbean/trunk/xbean-spring-v1/src/main/java/org/apache/xbean/spring/context/v1/XBeanXmlBeanDefinitionParser.java URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring-v1/src/main/java/org/apache/xbean/spring/context/v1/XBeanXmlBeanDefinitionParser.java?rev=427645&r1=427644&r2=427645&view=diff ============================================================================== --- geronimo/xbean/trunk/xbean-spring-v1/src/main/java/org/apache/xbean/spring/context/v1/XBeanXmlBeanDefinitionParser.java (original) +++ geronimo/xbean/trunk/xbean-spring-v1/src/main/java/org/apache/xbean/spring/context/v1/XBeanXmlBeanDefinitionParser.java Tue Aug 1 09:53:11 2006 @@ -24,7 +24,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Method; +import java.io.ByteArrayOutputStream; import java.util.Arrays; import java.util.Collection; import java.util.Enumeration; @@ -267,24 +267,28 @@ addProperty(definition, metadata, element, name, value); } else { - // lets stry parse a nested properties file + StringBuffer buffer = new StringBuffer(); NodeList childNodes = element.getChildNodes(); - if (childNodes.getLength() == 1 && childNodes.item(0) instanceof Text) { - Text text = (Text) childNodes.item(0); - ByteArrayInputStream in = new ByteArrayInputStream(text.getData().getBytes()); - Properties properties = new Properties(); - try { - properties.load(in); - } - catch (IOException e) { - return; - } - Enumeration enumeration = properties.propertyNames(); - while (enumeration.hasMoreElements()) { - name = (String) enumeration.nextElement(); - Object value = properties.getProperty(name); - definition.getBeanDefinition().getPropertyValues().addPropertyValue(name, value); + for (int i = 0, size = childNodes.getLength(); i < size; i++) { + Node node = childNodes.item(i); + if (node instanceof Text) { + buffer.append(((Text) node).getData()); } + } + + ByteArrayInputStream in = new ByteArrayInputStream(buffer.toString().getBytes()); + Properties properties = new Properties(); + try { + properties.load(in); + } + catch (IOException e) { + return; + } + Enumeration enumeration = properties.propertyNames(); + while (enumeration.hasMoreElements()) { + name = (String) enumeration.nextElement(); + Object value = getValue(properties.getProperty(name)); + definition.getBeanDefinition().getPropertyValues().addPropertyValue(name, value); } } } Modified: geronimo/xbean/trunk/xbean-spring-v1/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring-v1/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml?rev=427645&r1=427644&r2=427645&view=diff ============================================================================== --- geronimo/xbean/trunk/xbean-spring-v1/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml (original) +++ geronimo/xbean/trunk/xbean-spring-v1/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml Tue Aug 1 09:53:11 2006 @@ -3,11 +3,14 @@ - topping Salami cheese Edam - size 17 + + + Salami + + size 17 - + Modified: geronimo/xbean/trunk/xbean-spring-v2/src/main/java/org/apache/xbean/spring/context/v2/XBeanNamespaceHandler.java URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring-v2/src/main/java/org/apache/xbean/spring/context/v2/XBeanNamespaceHandler.java?rev=427645&r1=427644&r2=427645&view=diff ============================================================================== --- geronimo/xbean/trunk/xbean-spring-v2/src/main/java/org/apache/xbean/spring/context/v2/XBeanNamespaceHandler.java (original) +++ geronimo/xbean/trunk/xbean-spring-v2/src/main/java/org/apache/xbean/spring/context/v2/XBeanNamespaceHandler.java Tue Aug 1 09:53:11 2006 @@ -343,24 +343,28 @@ addProperty(definition, metadata, element, name, value); } else { - // lets stry parse a nested properties file + StringBuffer buffer = new StringBuffer(); NodeList childNodes = element.getChildNodes(); - if (childNodes.getLength() == 1 && childNodes.item(0) instanceof Text) { - Text text = (Text) childNodes.item(0); - ByteArrayInputStream in = new ByteArrayInputStream(text.getData().getBytes()); - Properties properties = new Properties(); - try { - properties.load(in); - } - catch (IOException e) { - return; - } - Enumeration enumeration = properties.propertyNames(); - while (enumeration.hasMoreElements()) { - name = (String) enumeration.nextElement(); - Object value = properties.getProperty(name); - definition.getBeanDefinition().getPropertyValues().addPropertyValue(name, value); + for (int i = 0, size = childNodes.getLength(); i < size; i++) { + Node node = childNodes.item(i); + if (node instanceof Text) { + buffer.append(((Text) node).getData()); } + } + + ByteArrayInputStream in = new ByteArrayInputStream(buffer.toString().getBytes()); + Properties properties = new Properties(); + try { + properties.load(in); + } + catch (IOException e) { + return; + } + Enumeration enumeration = properties.propertyNames(); + while (enumeration.hasMoreElements()) { + name = (String) enumeration.nextElement(); + Object value = getValue(properties.getProperty(name)); + definition.getBeanDefinition().getPropertyValues().addPropertyValue(name, value); } } } Modified: geronimo/xbean/trunk/xbean-spring-v2/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring-v2/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml?rev=427645&r1=427644&r2=427645&view=diff ============================================================================== --- geronimo/xbean/trunk/xbean-spring-v2/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml (original) +++ geronimo/xbean/trunk/xbean-spring-v2/src/test/resources/org/apache/xbean/spring/context/pizza-xbean-properties.xml Tue Aug 1 09:53:11 2006 @@ -3,11 +3,14 @@ - topping Salami cheese Edam - size 17 + + + Salami + + size 17 - +