You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Michiel Kalkman (JIRA)" <ji...@apache.org> on 2006/06/16 13:08:30 UTC

[jira] Commented: (CONFIGURATION-215) Using relative URLs

    [ http://issues.apache.org/jira/browse/CONFIGURATION-215?page=comments#action_12416477 ] 

Michiel Kalkman commented on CONFIGURATION-215:
-----------------------------------------------

Knowing in which location a certain configuration item was specificied, would help in implementing a getURL() method on the configuration interface. Maybe it would also be useful for debugging purposes, e.g. when a configuration item is specified in multiple locations, it could be used to determine which one was chosen.

I think it's important to keep the configuration files as simple and intuitive as possible in order to make usage and specification of configurations as easy. In particular, you don't want a programmer to know how the configuration is structured; except for the location of the root configuration, and the names / types of the configuration items, he should know nothing more.

So, option 1 is still my favorite solution. Maybe that for some options this can not be implemented (JNDI comes to mind - but I never used that in combination with commons configuration).

> Using relative URLs
> -------------------
>
>          Key: CONFIGURATION-215
>          URL: http://issues.apache.org/jira/browse/CONFIGURATION-215
>      Project: Commons Configuration
>         Type: Improvement

>     Reporter: Michiel Kalkman
>     Priority: Minor

>
> It would be useful to be able to specify URLs in configuration item values that are relative to the configuration.
> A sample. I have the following files.
> A/config.xml   which refers to    
> B/specificConfigForB.xml   which refers to
> B/somefile
> Now specifying the location of somefile in specificConfigForB.xml should be possible using a relative URL, such that it is possible to retrieve the absolute URL of somefile through:
> a) the absolute URL of A/config.xml (e.g.: file:/c:/A/config.xml or http://A/config.xml)
> b) the relative URL of somefile specified in B/specificConfigForB.xml (like <somefile>somefile</somefile>)
> (1) One solution is to make it possible to find the location of the configuration file that specifies the relative URL. Or more general, commons config should know where a given configuration item is stored.
> In this case it might be an idea to implement a getURL() on the Configuration interface which uses:
> 1. the absolute URL of the composite configuration file, (A/config.xml)
> 2. the relative URL to the specfying configuration file, (B/specificConfigForB.xml)
> 3. the relative URL specified (in B/specificConfigForB.xml)
> (2) Another solution is to specify a special meta variable (like ${url}) that can be used to specify the location of the specifying configuration file wrt the composite configuration file. E.g. <somefile>${url}/somefile</somefile> would result in ../B/somefile.
> (3) Another solution would be to specify a special attribute to indicate that the value specified is an URL. Like <somefile type="URL">somefile</somefile>.
> The advantage of solution (1) is that no extra semantics are introduced to the configuration files. Furthermore, it might possibly be useful in debugging situations. The advantages of solution (2) is that in this manner other meta variables might be introduced. The disadvantage of solution (3) is that this one cannot be applied to property files.
> See also http://mail-archives.apache.org/mod_mbox/jakarta-commons-user/200606.mbox/%3c448AE9A8.2030003@oliver-heger.de%3e

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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