Re: Filterchain's LineContains on LoadProperties is blocking the reading of properties
Jaikiran Pai <[email protected]>
| Newsgroups | gmane.comp.jakarta.ant.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Anuerin,
Ifthere are more than one"contains" elements of the "linecontains", then
as noted in the documentation[1]"and" will be used toevaluate whether
the line contains those strings. So in the exampleyou pasted, the
properties file will be looked for lines containing ws.user AND
ws.password AND wl.user AND wl.password, which obviously won't be
satisfied for the sample.properties.
[1] https://ant.apache.org/manual/Types/filterchain.html#linecontains
-Jaikiran
On 19/04/18 7:28 AM, Anuerin Diaz wrote:
> Hi,
>
> I am trying to selectively load properties using the LoadProperties and
> FilterChain+LineContains tasks. However based on my test if the Filterchain
> starts to contain any "<contains/>" element then it will start discarding
> all contents of the property file being read. This was tested using ant
> 1.10.1 adn 1.10.3 in a Java 1.8 VM hosted in a Windows 10 64-bit machine.
>
> Below is my build xml and sample.properties file. The initialize target
> has different variations that I tried to do to isolate the problem. What
> could be the problem in this instance? Thanks.
>
> -- build.xml ---
>
> <project name="MyProject" basedir=".">
> <target name="initialize">
> <echo>Starting load...</echo>
> <loadproperties srcFile="${basedir}/01_PropertyFiles/sample.properties">
>
> <filterchain>
> <linecontains>
> <contains value="ws.user" />
> <contains value="ws.password" />
> <contains value="wl.user" />
> <contains value="wl.password" />
> </linecontains>
> </filterchain>
>
> <!--filterchain>
>
> <filterreader classname="org.apache.tools.ant.filters.LineContains">
> <param type="contains" value="user"/>
> <param type="contains" value="password"/>
> </filterreader>
>
>
> </filterchain-->
>
>
> </loadproperties>
> <echo>${ws.user} - ${ws.password}</echo>
> <echo>${wl.user} - ${wl.password}</echo>
>
> <echo>${placebo.prop} should be printed as a literal. </echo>
>
> </target>
>
> </project>
>
>
> -- end of build.xml ---
>
> ---- sample.properties ----
> placebo.prop=dontprintme
> ws.user=dilbert
> ws.password=washere
> wl.user=felix
> wl.password=lantern
>
> ps.xser=dummy
> ---- end of sample.properties ----
>
>