Return-Path: X-Original-To: apmail-commons-issues-archive@minotaur.apache.org Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9A17617C02 for ; Thu, 9 Oct 2014 19:47:34 +0000 (UTC) Received: (qmail 14651 invoked by uid 500); 9 Oct 2014 19:47:34 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 14553 invoked by uid 500); 9 Oct 2014 19:47:34 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 14538 invoked by uid 99); 9 Oct 2014 19:47:34 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Oct 2014 19:47:34 +0000 Date: Thu, 9 Oct 2014 19:47:34 +0000 (UTC) From: "Oliver Heger (JIRA)" To: issues@commons.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CONFIGURATION-427) XMLPropertyListConfiguration cannot save arrays in the correct plist form MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CONFIGURATION-427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Oliver Heger updated CONFIGURATION-427: --------------------------------------- Attachment: configuration-427-2.patch Based on your proposal, I have created a patch. It also checks whether the object to be added is a list. In addition, it checks for arrays and converts them to lists. Please double-check whether this solves the original issue. The problem I see with this approach and the way {{XMLPropertyListConfiguration}} is implemented is that the internal data representation used by this class differs from the way other hierarchical configuration implementations store their data. For instance, a list structure is stored in a single node with a value of type {{List}}; other configurations use multiple nodes for the single values of the list. So the enhanced query facilities offered by hierarchical configurations do not work well here. It would probably be a better solution to store the data in the "native" representation used by hierarchical configurations and to convert to PList-specific structures when saving to disk. But this is probably not trivial to implement. > XMLPropertyListConfiguration cannot save arrays in the correct plist form > ------------------------------------------------------------------------- > > Key: CONFIGURATION-427 > URL: https://issues.apache.org/jira/browse/CONFIGURATION-427 > Project: Commons Configuration > Issue Type: Bug > Components: Format > Affects Versions: 1.6 > Environment: should show up in any environment, as the test cases are disabled for arrays and maps: > http://commons.apache.org/configuration/xref-test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.html#199 > I was testing 1.6 using groovy console under Mac OS X 10.6 > Reporter: matthew smith > Assignee: Emmanuel Bourg > Priority: Minor > Attachments: configuration-427-2.patch, configuration-427.patch > > > {code:java} > groovy> import org.apache.commons.configuration.plist.* > groovy> def config = new XMLPropertyListConfiguration() > groovy> config.addProperty("things", ['chair', 'hat', 'door']) > groovy> config.save(System.out) > {code} > results in > > {code:xml} > > > > > things > chair > things > hat > things > door > > > {code} > expecting > {code:xml} > > > > > things > > chair > hat > door > > > > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)