commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <ralph.go...@dslextreme.com>
Subject Re: [CONFIGURATION] need help with DefaultConfigurationBuilder and CombinedConfiguration
Date Fri, 19 Dec 2008 02:43:56 GMT
First, why not do

<bean id="configurationBuilder"  
class="org.apache.commons.configuration.DefaultConfigurationBuilder">
   <property name="fileName" value="test-config-xml.xml"/>
</bean
<bean id="appConfig" factory-bean="configurationBuilder" factory- 
method="getConfiguration"/>

Then declare your component to take a CombinedConfiguration instead of  
the builder.

Next, you've supplied the constructor for a class named FtpEdt yet  
your stack trace shows the failure in a class named Email. What is  
that class doing?

Ralph

On Dec 18, 2008, at 5:59 PM, Rusty Wright wrote:

> I'm using Spring to autowire things together; in my Spring test- 
> applicationContext.xml I have
>
>   <bean id="configurationBuilder"  
> class="org.apache.commons.configuration.DefaultConfigurationBuilder">
>        <property name="fileName" value="test-config-xml.xml" />
>   </bean>
>
> In test-config-xml.xml I have
>
>   <?xml version="1.0" encoding="ISO-8859-1" ?>
>
>   <configuration>
>       <xml
>           config-name="ftp"
>           fileName="properties/ftp.xml"
>       />
>
>       <xml
>           config-name="email"
>           fileName="properties/email.xml"
>       />
>   </configuration>
>
> And ftp.xml contains
>
>   <?xml version="1.0" encoding="ISO-8859-1" ?>
>
>   <ftp>
>       <server>${ftp.server}</server>
>
>       <login>${ftp.login}</login>
>
>       <password>${ftp.password}</password>
>
>       <siteCmd>${ftp.siteCmd}</siteCmd>
>   </ftp>
>
> The ${} placeholders are replaced by maven when I run my tests.  The  
> email.xml file contains similar entries.
>
> In my class that uses the DefaultConfigurationBuilder, it's injected  
> by Spring in its constructor:
>
>   @Autowired
>   public FtpEdt(final DefaultConfigurationBuilder configBuilder)
>           throws ConfigurationException {
>       super();
>
>       final CombinedConfiguration combinedConfig =  
> configBuilder.getConfiguration(true);
>
>       final Configuration config =  
> combinedConfig.getConfiguration("ftp");
>
>       this.server = config.getString("server");
>
>       if (this.server == null)
>           throw (new IllegalStateException("server not set"));
>
> The problem is when the Email class's constructor is called, which  
> looks very similar, it blows up on the  
> configBuilder.getConfiguration(true); with
>
> Caused by:  
> org.apache.commons.configuration.ConfigurationRuntimeException: A  
> configuration with the name 'ftp' already exists in this combined  
> configuration!
>       at  
> org 
> .apache 
> .commons 
> .configuration 
> .CombinedConfiguration.addConfiguration(CombinedConfiguration.java: 
> 315) [commons-configuration-1.5.jar:1.5]
>       at  
> org 
> .apache 
> .commons 
> .configuration 
> .DefaultConfigurationBuilder 
> .initCombinedConfiguration(DefaultConfigurationBuilder.java:572)  
> [commons-configuration-1.5.jar:1.5]
>       at  
> org 
> .apache 
> .commons 
> .configuration 
> .DefaultConfigurationBuilder 
> .getConfiguration(DefaultConfigurationBuilder.java:501) [commons- 
> configuration-1.5.jar:1.5]
>       at edu.berkeley.ist.cars.net.email.Email.<init>(Email.java:41)  
> [classes/:na]
>       ...
>
> So I guess I don't understand how to use the CombinedConfiguration  
> and the DefaultConfigurationBuilder; can someone give me some hints  
> for how to do this?
>
> Thanks
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message