Sorry, I had only looked at the ant ReplaceTokens documentation and not at the source. It does not support a setPropertiesfile method to allow access to this feature :(

But (again without having tried this myself) perhaps this is sufficient:

 Properties props = new Props()
 props.load(...)

 copy {
    from 'path_to_file_to_be_filtered'
    into ...
    filter(ReplaceTokens, tokens: props)
 }

I'm not clear why Hans had a props.each surrounding the filter in his example.

Narco wrote:
on gradle0.8 filter(ReplaceTokens, propertiesfile: 'mysettings.properties')
gives:
Cause: Error - Invalid filter specification for
org.apache.tools.ant.filters.ReplaceTokens


Steve Appling wrote:


Hans Dockter wrote:
On Nov 4, 2009, at 3:04 PM, Jason Porter wrote:

Sent from my iPhone

On Nov 4, 2009, at 4:43, Levi Hoogenberg <[email protected] <mailto:[email protected]>> wrote:

Hi Jason,

I don't know if it's the Gradle way, but in one of my projects' build.gradle I have the following:

processResources {
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [version: project.version])
}

This replaces @version@ in a property file, so that it can be read from the code.
The processResources task is of type Copy.

See Javadoc:
http://gradle.org/0.8/docs/javadoc/index.html?org/gradle/api/tasks/Copy.html

What you could do in your case:

Properties props = new Props()
props.load(...)

copy {
   from 'path_to_file_to_be_filtered'
   into ...
   props.each { key, value ->
filter(ReplaceTokens, tokens: props) // It depends on you set up if this is exactly what you want.
   }
}

- Hans

--
Hans Dockter
Gradle Project Manager
http://www.gradle.org
I haven't tried this, but I think the ReplaceTokens filter can read from a properties file all by itself so you can do:
copy {
     from 'path_to_file_to_be_filtered'
     into ...
     filter(ReplaceTokens, propertiesfile: 'mysettings.properties')
}


Regards,
  Levi

On Wed, Nov 4, 2009 at 7:46 AM, Jason Porter < <http://lightguard.jp/>lightguard.jp <http://lightguard.jp/>@ <http://gmail.com/>gmail.com <http://gmail.com/>> wrote:

    In a war I've got I'd like to filter a file that ultimately ends
    up in
    the WEB-INF directory (chances are I'll just put it here under
    webapp/WEB-INF anyway), but I want to replace some tokens in it
    (preferably with items that exist in a properties file).  I know
how
    I'd do this in ant, but what's the gradle way of doing it?

    --
    Jason Porter
    Real Programmers think better when playing Adventure or Rogue.

    PGP key id: 926CCFF5
    PGP fingerprint: 64C2 C078 13A9 5B23 7738 F7E5 1046 C39B 926C CFF5
    PGP key available at: <http://keyserver.net/>keyserver.net
    <http://keyserver.net/>, <http://pgp.mit.edu/>pgp.mit.edu
    <http://pgp.mit.edu/>

---------------------------------------------------------------------
    To unsubscribe from this list, please visit:

<http://xircles.codehaus.org/manage_email>http://xircles.codehaus.org/manage_email



That would work fine, but I don't want to list the tokens and their values in the build file. I'd rather have them pulled from a properties file (so it can change from box / environment). Think stuff like user names and passwords, external locations, etc.
--
Steve Appling
Automated Logic Research Team

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email






--
Steve Appling
Automated Logic Research Team

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to