ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dominique Devienne <DDevie...@lgc.com>
Subject RE: String handling / Macro Processing
Date Mon, 25 Nov 2002 20:54:43 GMT
It's worth answering Rolf, but the answer is not good... There is currently
no task that does string manipulation on properties directly. Nevertheless,
you can easily do it yourself using a <script> and any of the
Java-implemented BSF-compatible languages out there: JavaScript, BeanShell,
Jacl, etc... The following below shows you how. This is no substitute for a
good task that would be doing property manipulation, but it does the job
relatively easily (once you have the proper JARs for <script>). --DD

P:\org_apache\antx>%ANT_HOME%\bin\ant -f property-manip-script.xml
Buildfile: property-manip-script.xml

test:
     [echo] package name = com.myName.helloWorld
     [echo] package path = com\myName\helloWorld
     [echo] package class = helloWorld

BUILD SUCCESSFUL
Total time: 1 second
P:\org_apache\antx>type property-manip-script.xml
<?xml version="1.0"?>

<!-- ANT build file to test a specific feature or bug of ANT.
     Dominique Devienne <ddevienne@lgc.com>     November 2002
  -->
<project name="property-manip" default="test">

  <target name="test">
    <property name="package" value="com.myName.helloWorld" />

    <!-- Sets the file.size property with the length of the
         file as named in the ant.file property -->
    <script language="javascript"><![CDATA[
      pkgName = self.getProject().getProperty("package");
      pkgPath = pkgName.replace('.', java.io.File.separatorChar);
      pkgClss = pkgName.substring(pkgName.lastIndexOf('.')+1);
      self.getProject().setNewProperty("packagePath", pkgPath);
      self.getProject().setNewProperty("packageClass", pkgClss);
    ]]></script>

    <echo message="package name = ${package}" />
    <echo message="package path = ${packagePath}" />
    <echo message="package class = ${packageClass}" />
  </target>

</project>

P:\org_apache\antx>

PS: Of course, getting the class name from the qualified
    class name is a bit more involved than that to be generic. 

-----Original Message-----
From: Rolf Schumacher [mailto:Rolf.Schumacher@hamburg.de] 
Sent: Monday, November 25, 2002 3:29 AM
To: Ant Users List
Subject: Re: String handling / Macro Processing

Seems that this question is not worth answering or there is no answer it.

Rolf

Rolf Schumacher wrote:

> Compared with the not-so-good old make utility
> I wonder how string handling is done in Ant.
> Looked thru the manual and couldn't find it.
>
> E.g.:
> Setting properties like
> <property name="package" value="com.myName.helloWorld"/>
> <property name="packagePath" value="com/myName/helloWorld"/>
> <property name="mainClass" value="HelloWorld"/>
>
> are redundant, at least do me.
> There has to be a way to base all three on common information.
>
> What have I missed?
>
> Rolf

--
To unsubscribe, e-mail:   <mailto:ant-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-user-help@jakarta.apache.org>


Mime
View raw message