Hi,

That works but I need to set the  property values ( as you can do on the 
command line with -D)
for 

<property name="arch"                         value="jvm"/>
<property name="product_number"         value="BAD000"/>
<property name="product_revision"         value="P0"/>

so the default values will be overridden( read from product.attributes file).
Then I will use the properties in target called prepare-product-info.
Was I more clear this time?

cheers,

//mikael


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: den 18 oktober 2005 13:02
To: user@ant.apache.org
Subject: AW: set property values using my own task


Where is the problem?

<project>
    <taskdef/>
    <propertyread/>
    <target>
        <echoproperties/>
    </target>
</project>

in that order should work.


Jan


>-----Ursprüngliche Nachricht-----
>Von: Mikael Petterson (KI/EAB) [mailto:[EMAIL PROTECTED] 
>Gesendet: Dienstag, 18. Oktober 2005 12:50
>An: user@ant.apache.org
>Betreff: set property values using my own task
>
>Hi,
>
>The purose of my task is to set the values for properties 
>arch, product_number and product_revision.
>The information is stored in a file called 
>'product.attributes'. I need to assign the properties the 
>values ( line two) in the product.attributes file and then use 
>the property values in target, prepare-product-info. Is it possible ?
>Any suggestions?
>
>cheers,
>
>//mikael
>
>
>This is the content of product.attributes:
>
>TARGET:PRODUCT_NUMBER:PRODUCT_REVISION
>jvm:CXC1327714/22:R1A01
>default:BAD_TARGET:R1A01
>
>
>build.xml
>=======
>
><project ........>
>......
><property name="arch"                         value="jvm"/>
><property name="product_number"         value="BAD000"/>
><property name="product_revision"         value="P0"/>
>
>.........
>
>  <target name="product.attributes">
>   
>   <taskdef name="propertyread" 
>           classname="se.mycompany.PropertyReadTask"/>
>           <propertyread prefix="prod" 
>file="product.attributes" delimiter=":"/>
>   <echoproperties prefix="prod"/>
>  </target>
>
> <target name="prepare-product-info" 
>       depends="propertyread"
>       description="Prepare product information.">
>  <echo>Product name   : ${name}</echo>
>  <echo>Product number : ${product_number}</echo>
>  <echo>Product rev    : ${product_revision}</echo>
>  <exec executable="cleartool"
>        outputproperty="view">
>    <arg line="pwv -short"/>
>  </exec>
>  <tstamp>
>    <format property="datetime"
>            pattern="yyyy-MM-dd HH:mm:ss z"/>
>  </tstamp>
>
>  <property name="product.attrs.line1"
>            value="${user.dir} ${name} ${arch} ${view}"/>
>  <property name="product.attrs.line2"
>            value="${product_number} ${product_revision} 
>${datetime} ${identifier}"/> </target>
>
></project>
>
>PropertyReadTask file
>================
>public class PropertyReadTask extends org.apache.tools.ant.Task{
>    
>    private String prefix;
>    private String file;
>    private String delimiter;
>    
>    public void execute() throws BuildException {
>      if (prefix==null || file==null) {
>            throw new BuildException("prefix and file must be set");
>        }
>        try{
>        // read the file
>        Reader rdr = new java.io.FileReader(file);
>        String content = FileUtils.readFully(rdr);
>         // split into metadata and content data
>        String lines[] = content.split( 
>getProject().getProperty("line.separator") );
>        String h1eader = lines[0];
>        String body = lines[1];
>
>        // get the metadata
>        String metaData[] = header.split(delimiter);
>
>        // get the content data and save as Ant properties
>        String contentData[] = body.split(delimiter);
>        for (int i=0; i<contentData.length; i++) {
>            getProject().setNewProperty(prefix + "." + 
>metaData[i], contentData[i]);
>        }
>        
>        }catch(Exception e){
>            throw new BuildException("Something happened");
>        }
>        
>    }
>    
>    
>    public void setDelimiter(String delimiter){
>        this.delimiter = delimiter;
>    }
>    
>    public void setFile(String file){
>        this.file = file;
>    }
>    
>    public void setPrefix(String prefix){
>         this.prefix = prefix;
>    }
>    
>
>    
>}
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED] For 
>additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to