Re: Commons Config: Variable Interpolation
Hi Ronald, I have not used ExprLookup myself, so I am not sure whether I am a big help here. Your declaration of the lookup seems to be correct, otherwise an exception would be thrown by DefaultConfigurationBuilder. A difference between your code and the example in the user's guide is that in the latter the expression lookup is directly used in the file read by DefaultConfigurationBuilder and not in one of the included configuration files. For version 2.0 (which is work in progress) this should be supported, but I am not sure whether this also works in 1.x. I would recommend to start with a simple example first. Test whether you can access the lookup directly in this xml file, e.g. by setting the file name of a configuration source as demonstrated in the example. By this you can find out the results of variable substitutions and compare them with your expectations. Only if this works as expected, try again to use the lookup in an included configuration source. HTH Oliver Am 11.07.2014 17:27, schrieb DiFrango, Ronald (CONT): Here's the full XML file: ?xml version=1.0 encoding=ISO-8859-1 ? configuration header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header system / properties fileName= example.properties listDelimiter=| reloadingStrategy refreshDelay=1 config-class=org.apache.commons.configuration.reloading.FileChangedReloadingStrategy / /properties /configuration And the referenced properties file: mobile.rest.host=${expr:$[net.localHost.hostName]} Ron DiFrango -Original Message- From: Martin Gainty [mailto:mgai...@hotmail.com] Sent: Friday, July 11, 2014 11:25 AM To: Commons Users List Subject: RE: Commons Config: Variable Interpolation From: ronald.difra...@capitalone.com To: user@commons.apache.org Date: Fri, 11 Jul 2014 11:02:45 -0400 Subject: RE: Commons Config: Variable Interpolation Just to complete it, the code looks like: DefaultConfigurationBuilder factory = new DefaultConfigurationBuilder(example.xml); Configuration config = factory.getConfiguration(); MGno clue which properties are defined in example.xml so lets add a new MGproperty called mobile.rest.host here MGconfig.addProperty(mobile.rest.host, maps.google.com); System.out.println(Host Name = + config.getString(mobile.rest.host)); MG? Ron DiFrango -Original Message- From: DiFrango, Ronald (CONT) [mailto:ronald.difra...@capitalone.com] Sent: Friday, July 11, 2014 10:49 AM To: user@commons.apache.org Subject: Commons Config: Variable Interpolation I'm attempting to perform Variable Interpolation as outlined here: http://commons.apache.org/proper/commons-configuration/userguide/howto _basicfeatures.html#Variable_Interpolation I'm using an XML file as the starter so I added the following blurb to the beginning of the file: header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header MG override xml mobileRestHost=String.lowercase(net.localHost.hostName)/xml /override MG? And then in my properties file that is loaded I did: mobile.rest.host=${expr:$[net.localHost.hostName]} But it did not work any thoughts on what I'm doing wrong? Thanks, Ron The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity
Re: Commons Config: Variable Interpolation
On 7/12/14, 9:52 AM, Oliver Heger wrote: Hi Ronald, I have not used ExprLookup myself, so I am not sure whether I am a big help here. Your declaration of the lookup seems to be correct, otherwise an exception would be thrown by DefaultConfigurationBuilder. A difference between your code and the example in the user's guide is that in the latter the expression lookup is directly used in the file read by DefaultConfigurationBuilder and not in one of the included configuration files. For version 2.0 (which is work in progress) this should be supported, but I am not sure whether this also works in 1.x. I would recommend to start with a simple example first. Test whether you can access the lookup directly in this xml file, e.g. by setting the file name of a configuration source as demonstrated in the example. By this you can find out the results of variable substitutions and compare them with your expectations. Only if this works as expected, try again to use the lookup in an included configuration source. I also have no experience using this feature, but IIUC you are trying to use expr as a prefix. According to the doc, that is not among the supported prefixes. Phil HTH Oliver Am 11.07.2014 17:27, schrieb DiFrango, Ronald (CONT): Here's the full XML file: ?xml version=1.0 encoding=ISO-8859-1 ? configuration header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header system / properties fileName= example.properties listDelimiter=| reloadingStrategy refreshDelay=1 config-class=org.apache.commons.configuration.reloading.FileChangedReloadingStrategy / /properties /configuration And the referenced properties file: mobile.rest.host=${expr:$[net.localHost.hostName]} Ron DiFrango -Original Message- From: Martin Gainty [mailto:mgai...@hotmail.com] Sent: Friday, July 11, 2014 11:25 AM To: Commons Users List Subject: RE: Commons Config: Variable Interpolation From: ronald.difra...@capitalone.com To: user@commons.apache.org Date: Fri, 11 Jul 2014 11:02:45 -0400 Subject: RE: Commons Config: Variable Interpolation Just to complete it, the code looks like: DefaultConfigurationBuilder factory = new DefaultConfigurationBuilder(example.xml); Configuration config = factory.getConfiguration(); MGno clue which properties are defined in example.xml so lets add a new MGproperty called mobile.rest.host here MGconfig.addProperty(mobile.rest.host, maps.google.com); System.out.println(Host Name = + config.getString(mobile.rest.host)); MG? Ron DiFrango -Original Message- From: DiFrango, Ronald (CONT) [mailto:ronald.difra...@capitalone.com] Sent: Friday, July 11, 2014 10:49 AM To: user@commons.apache.org Subject: Commons Config: Variable Interpolation I'm attempting to perform Variable Interpolation as outlined here: http://commons.apache.org/proper/commons-configuration/userguide/howto _basicfeatures.html#Variable_Interpolation I'm using an XML file as the starter so I added the following blurb to the beginning of the file: header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header MG override xml mobileRestHost=String.lowercase(net.localHost.hostName)/xml /override MG? And then in my properties file that is loaded I did: mobile.rest.host=${expr:$[net.localHost.hostName]} But it did not work any thoughts on what I'm doing wrong? Thanks, Ron The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. The information contained
Commons Config: Variable Interpolation
I'm attempting to perform Variable Interpolation as outlined here: http://commons.apache.org/proper/commons-configuration/userguide/howto_basicfeatures.html#Variable_Interpolation I'm using an XML file as the starter so I added the following blurb to the beginning of the file: header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header And then in my properties file that is loaded I did: mobile.rest.host=${expr:$[net.localHost.hostName]} But it did not work any thoughts on what I'm doing wrong? Thanks, Ron The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer.
RE: Commons Config: Variable Interpolation
Here's the full XML file: ?xml version=1.0 encoding=ISO-8859-1 ? configuration header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header system / properties fileName= example.properties listDelimiter=| reloadingStrategy refreshDelay=1 config-class=org.apache.commons.configuration.reloading.FileChangedReloadingStrategy / /properties /configuration And the referenced properties file: mobile.rest.host=${expr:$[net.localHost.hostName]} Ron DiFrango -Original Message- From: Martin Gainty [mailto:mgai...@hotmail.com] Sent: Friday, July 11, 2014 11:25 AM To: Commons Users List Subject: RE: Commons Config: Variable Interpolation From: ronald.difra...@capitalone.com To: user@commons.apache.org Date: Fri, 11 Jul 2014 11:02:45 -0400 Subject: RE: Commons Config: Variable Interpolation Just to complete it, the code looks like: DefaultConfigurationBuilder factory = new DefaultConfigurationBuilder(example.xml); Configuration config = factory.getConfiguration(); MGno clue which properties are defined in example.xml so lets add a new MGproperty called mobile.rest.host here MGconfig.addProperty(mobile.rest.host, maps.google.com); System.out.println(Host Name = + config.getString(mobile.rest.host)); MG? Ron DiFrango -Original Message- From: DiFrango, Ronald (CONT) [mailto:ronald.difra...@capitalone.com] Sent: Friday, July 11, 2014 10:49 AM To: user@commons.apache.org Subject: Commons Config: Variable Interpolation I'm attempting to perform Variable Interpolation as outlined here: http://commons.apache.org/proper/commons-configuration/userguide/howto _basicfeatures.html#Variable_Interpolation I'm using an XML file as the starter so I added the following blurb to the beginning of the file: header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header MG override xml mobileRestHost=String.lowercase(net.localHost.hostName)/xml /override MG? And then in my properties file that is loaded I did: mobile.rest.host=${expr:$[net.localHost.hostName]} But it did not work any thoughts on what I'm doing wrong? Thanks, Ron The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. - To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review
RE: Commons Config: Variable Interpolation
95 before document = dBuilder.parse(fXmlFile)); this.document = dBuilder.parse(fXmlFile); this.document.getDocumentElement().normalize(); } System.out.println(CommonsConfigurationTest::test() LINE 98 document= + this.document ); //rootNode = config.getRoot(); //System.out.println(CommonsConfigurationTest::getRootNode() LINE 37 rootNode = + rootNode); //System.out.println(CommonsConfigurationTest::getRootElementNode() LINE 101 getRootElementName()=+config.getRootElementName()); //rootNodeList = rootNode.getChildNodes(); //System.out.println(CommonsConfigurationTest::getRootElementNode() rootNodeList = +rootNodeList); //System.out.println(CommonsConfigurationTest::getRootElementNode() rootNodeList length = +rootNodeList.getLength()); System.out.println(CommonsConfigurationTest::getRootElementNode() LINE 108 Root element : + this.document.getDocumentElement().getNodeName()); //test for ron System.out.println(CommonsConfigurationTest:test LINE 108 document = +this.document); configurationList = this.document.getElementsByTagName(configuration); System.out.println(CommonsConfigurationTest::test Object config.getProperty(configuration) = +configurationList.item(0) ); headerList = this.document.getElementsByTagName(header); System.out.println(CommonsConfigurationTest::test LINE 36 header.length=+headerList.getLength()); System.out.println(CommonsConfigurationTest::test LINE 36 header=+headerList.item(0)); lookupsList = this.document.getElementsByTagName(lookups); System.out.println(CommonsConfigurationTest::test LINE 36 header.lookups=+lookupsList.item(0) ); lookupList = this.document.getElementsByTagName(lookup); System.out.println(CommonsConfigurationTest::test LINE 36 header.lookups.lookup with / +lookupList.item(0) ); variablesList = this.document.getElementsByTagName(variables); System.out.println(CommonsConfigurationTest::test LINE 89 variables lookup = +variablesList.item(0) ); variableList = this.document.getElementsByTagName(variable); System.out.println(CommonsConfigurationTest::test LINE 38 variable length+variableList.getLength() ); org.w3c.dom.Node valueNode = variableList.item(0); if (valueNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) { org.w3c.dom.Element eElement = (org.w3c.dom.Element) valueNode; System.out.println(id : + eElement.getAttribute(id)); //org.w3c.dom.NodeList nodeList = eElement.getElementsByTagName(value); //System.out.println(CommonsConfigurationTest::test LINE 135 nodeList=+nodeList); System.out.println(value : + eElement.getAttribute(value) ); //org.w3c.dom.Node node = nodeList.item(0); //System.out.println(CommonsConfigurationTest::test LINE 135 node=+node); //org.w3c.dom.NamedNodeMap map = node.getAttributes(); //System.out.println(value : + map.getNamedItem(value) ); //node.getTextContent()); } props.load( new java.io.FileInputStream(C:/temp/example.properties) ); System.out.println(CommonsConfigurationTest::test LINE 39 (config.getProperty) properties.reloadingStrategy =+ props.getProperty(mobile.rest.host) ); } catch (Exception e) { System.out.println(CommonsConfigurationTest::test LINE 55 has thrown Exception message=+e.getMessage()); e.printStackTrace(); fail(e.getMessage()); } } } From: ronald.difra...@capitalone.com To: user@commons.apache.org Date: Fri, 11 Jul 2014 11:27:14 -0400 Subject: RE: Commons Config: Variable Interpolation Here's the full XML file: ?xml version=1.0 encoding=ISO-8859-1 ? configuration header result / lookups lookup config-prefix=expr config-class=org.apache.commons.configuration.interpol.ExprLookup variables variable name=net value=Class:java.net.InetAddress / /variables /lookup /lookups /header system / properties fileName= example.properties listDelimiter=| reloadingStrategy refreshDelay=1 config-class=org.apache.commons.configuration.reloading.FileChangedReloadingStrategy / /properties /configuration And the referenced properties file: mobile.rest.host=${expr:$[net.localHost.hostName]} Ron DiFrango -Original