commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian O'Connell" <broco...@vt.edu>
Subject Re: [Configuration] XMLConfiguration Duplicate Entries
Date Sun, 21 Jan 2007 02:57:32 GMT
Hello Oliver,

Yep that was it..

Not sure where I copied that example from but I can't locate it on the
Jakarta site so must have been external.

Thanks for the help.. Makes sense now.



On 1/20/07, Oliver Heger <oliver.heger@oliver-heger.de> wrote:
>
> Hello Brian,
>
> I think I see the problem:
>
> Brian O'Connell wrote:
> > Oliver,
> > I apologize for my incomplete snippet.  Looking back it would be
> difficult
> > to track down what was going on.   So lets try this one more time with
> some
> > complete code. :-)
> >
> > XML Configuration Used:
> >
> <snip/>
> >
> >
> > Here is a sample class illustrating the issue:
> >
> > import java.util.Arrays;
> >
> > import org.apache.commons.configuration.Configuration;
> > import org.apache.commons.configuration.XMLConfiguration;
> >
> >
> > public class ConfigTest {
> >
> >
> >    public ConfigTest() throws Exception {
> >
> >         XMLConfiguration config = new XMLConfiguration( "CVT.xml" );
> >
> >        config.setValidating( false );
> >
> >        config.load();
>
> When you create a XMLConfiguration passing in the file name to the
> constructor the XML document is immediately loaded. After that you call
> the load() method, which causes the document to be loaded once again. As
> is stated in the Javadocs for AbstractFileConfiguration (a base class of
> XMLConfiguration) [1] a call to load() will not clear the configuration
> first, but simply add the loaded properties. So you end up with having
> all your properties twice.
>
> Simply omit the call to load() or use the default constructor of
> XMLConfiguration() and your problem should be solved.
>
> Oliver
>
> [1]
>
> http://jakarta.apache.org/commons/configuration/apidocs/org/apache/commons/configuration/AbstractFileConfiguration.html
>
> >
> >
> >        Configuration subConfig = config.subset( "Hosts" );
> >
> >        System.out.println(subConfig.getString( "Subscribers" ));
> >        System.out.println(Arrays.asList(subConfig.getStringArray(
> > "Subscribers" )));
> >
> >
> >    }
> >
> >    /**
> >     * @param args
> >     */
> >    public static void main(String[] args) throws Exception {
> >
> >        new ConfigTest();
> >
> >
> >    }
> >
> > }
> >
> > Here is the output:
> > node1
> > [node1, node1]
> >
> >
> > I would expect the following output from that code above:
> > node1
> > [node1]
> >
> > In other words I would expect a one element array returned by
> > getStringArray
> > and the contents of that string array being "node1".
> >
> > Thanks!
> >
> >
> >
> > On 1/18/07, Oliver Heger <oliver.heger@oliver-heger.de> wrote:
> >>
> >> Brian O'Connell wrote:
> >> > I searched the archives (the best I could) but was unable to locate a
> >> > solution to this problem.
> >> >
> >> > I am using commons configuration 1.3
> >> >
> >> > I am seeing duplicate entries using the getStringArray method with an
> >> > XMLConfiguration.
> >> >
> >> > Here is an example configuration file:
> >> >
> >> > <?xml version="1.0" encoding="UTF-8" ?>
> >> > <CollectiveVerificationTool>
> >> >   <Topic>test</Topic>
> >> >
> >> >   <Publication>
> >> >      <Username>user</Username>
> >> >      <Password>usertest</Password>
> >> >   </Publication>
> >> >
> >> >   <Hosts>
> >> >      <Subscribers>node1</Subscribers>
> >> >      <Publishers>node3</Publishers>
> >> >   </Hosts>
> >> >
> >> >
> >> > </CollectiveVerificationTool>
> >> >
> >> >
> >> > Here is a code snippet that experiences the problem.
> >> >
> >> >
> >> > String single = configuration.getString( key );
> >> >
> >> > System.out.println(single);
> >> >
> >> > String value[] = configuration.getStringArray( key );
> >> >
> >> > System.out.println("Size of Array: " + value.length);
> >> >
> >> > System.out.println(Arrays.asList(value));
> >>
> >> Sorry, but from this snippet I cannot track down the problem. Which
> >> value has the key variable? How did you load the configuration?
> >>
> >> Oliver
> >>
> >>
> >> >
> >> >
> >> > Here is the output of that snippet:
> >> >
> >> > node1
> >> > Size of Array: 2
> >> > [node1, node1]
> >> >
> >> >
> >> > I would expect the size of the array to be 1 and the only item to be
> a
> >> > single entry of node1.
> >> >
> >> > Any pointers are appreciated.
> >> >
> >> > Thanks!
> >> >
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail: commons-user-help@jakarta.apache.org
> >>
> >>
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message