CompositeConfiguration cc = (CompositeConfiguration)
factory.getConfiguration();

will generate a class casting exception - try it

On 1/18/06, Oliver Heger <[EMAIL PROTECTED]> wrote:
>
> ConfigurationFactory will load all configuration sources listed in the
> configuration definition file and combine them into a single
> configuration object, which is an instance of CompositeConfiguration, a
> container for other Configuration objects.
>
> So if factory points to an initialized ConfigurationFactory object, you
> can do something like
>
> CompositeConfiguration cc = (CompositeConfiguration)
> factory.getConfiguration();
>
> After that you can use cc like a normal configuration object for
> querying properties. You can also access the original configuration
> objects that are stored in this container. This can be done through
> CompositeConfiguration's getConfiguration(int index) method. If you know
> that the first configuration in your factory definition file is an
> XMLConfiguration (loaded by the <xml> tag), you can safely cast it as
> follows:
>
> XMLConfiguration xmlConf = (XMLConfiguration) cc.getConfiguration(0);
>
> Now you can pass this object to other components.
>
> HTH
> Oliver
>
> Kfir Shay wrote:
> > Hi Borut,
> >
> > take another look at the java doc for CompositeConfiguration
> >
> http://jakarta.apache.org/commons/configuration/apidocs/org/apache/commons/configuration/CompositeConfiguration.html
> > <
> http://jakarta.apache.org/commons/configuration/apidocs/org/apache/commons/configuration/CompositeConfiguration.html
> >
> >
> > The method getConfiguration only take int argument so your example line
> -
> > CompositeConfiguration config = getConfiguration("configuration.xml");
> > simply won't work.
> >
> > Also even if I create a CompositeConfiguration object manually using the
> > getConfiguration method will return a Configuration object which means
> > that doing something like this (this is your example)
> > XMLPropertiesConfiguration xc = (XMLPropertiesConfiguration)
> > config.getConfiguration(2);
> > will throw a class cast exception.
> >
> >
> > I am not trying to pick or anything but it seems like what you told me
> > doesn't work.
> >
> > Thanks,
> > Kfir S.
> >
> >
> > On 1/17/06, *Borut Bolčina* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> 
> > wrote:
> >
> >     Hello,
> >
> >     if you want to have access to several configuration files from one
> >     place, then you should use
> >     CompositeConfiguration config = getConfiguration("configuration.xml
> ");
> >
> >     In configuration.xml you enumerate the config files you intend to
> use
> >     <?xml version="1.0" encoding="ISO-8859-1" ?>
> >     <configuration>
> >       <properties fileName="Some.properties"/>
> >       <properties fileName="Another.properties"/>
> >       <xml filename="YetAnotherProperties.xml"/>
> >     </configuration>
> >
> >     In the above case you can access values in all three property files
> >     through the same method calls, like
> >     valueOfTypeLong = config.getLong("someKey", 300000);
> >     valueOfTypeString = config.getString("anotherKey", "default value if
> >     this key not present");
> >
> >     If you want values from XML configuration file
> >     (YetAnotherProperties.xml) then you (for example):
> >     List<String> keywords = config.getList("blogs.keyword");
> >
> >     You will get a collection of all values (value1, anotherValue) if
> >     XML config looks like
> >     <feeds>
> >         <news>
> >             <keyword>http://www.aaa.com/feeds/12.xml</keyword>
> >             <keyword>http://www.bbb.com/feeds/16.xml</keyword>
> >             <keyword>http://www.ccc.com/feeds/18.xml</keyword>
> >         </news>
> >         <blogs>
> >             <keyword>value1</keyword>
> >             <keyword>anotherValue</keyword>
> >         </blogs>
> >     </feeds>
> >
> >     Now, if you want an explicit configuration out of
> >     CompositeConfiguration then you can by
> >     PropertiesConfiguration pc = (PropertiesConfiguration)
> >     config.getConfiguration(0);
> >     or
> >     XMLPropertiesConfiguration xc = (XMLPropertiesConfiguration)
> >     config.getConfiguration(2);
> >     if using the above configuration.xml file.
> >
> >     Hope this helps,
> >     Borut
> >
> >
> >     On 17.1.2006 5:26, Kfir Shay wrote:
> >
> >>Hi,
> >>
> >>I am a bit confused about the documentation inconsistencies in the
> commons
> >>configuration package.
> >>
> >>In the "ConfigurationFactory Howto" document in the section called "The
> >>configuration definition file" it is stated that the xml element creates
> an
> >>
> >>instance of XMLConfiguration:
> >>"The xml element can be used to load XML configuration files. It also
> uses
> >>the fileName attribute to determine the name of the file to load and
> creates
> >>an instance of XMLConfiguration."  Yet earlier in the "Accessing
> properties"
> >>
> >>section it is stated that ConfigurationFactory only return a
> configuration
> >>object via the getConfiguration()  method: "Whatever way we used to load
> the
> >>configuration factory, we should now have a Configuration object that
> was
> >>
> >>returned by the factory's getConfiguration()  method. This object is
> >>actually an instance of the CompositeConfiguration class"
> >>
> >>c\Currently my configuration consist of only one xml file but I want to
> use
> >>
> >>the ConfigurationFactory and leverage the config.xml file for the case
> that
> >>more configuration files will be added in the future (most probably all
> will
> >>be in xml format) but at the same time I need to get a XMLConfiguration
> >>
> >>object not the more general Configuration object can someone please
> clarify
> >>how to achieve this.
> >>
> >>This is my first post to the list, I hope some of you will take the time
> to
> >>give me an answer.
> >>
> >>Thanks,
> >>
> >>Kfir S.
> >>AIM:kingink24
> >>Email: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> >>
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to