Browse Source

Make javadoc expand properties for the new nested elements.

Use this to make the year of the copyright message in Ant's javadoc
dynamic - nice demonstration of tstamp's format element at the same
time.

Inspired by:	Jon Stevens <jon@latchkey.com>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269023 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 24 years ago
parent
commit
ecab5d3357
2 changed files with 24 additions and 12 deletions
  1. +4
    -2
      build.xml
  2. +20
    -10
      src/main/org/apache/tools/ant/taskdefs/Javadoc.java

+ 4
- 2
build.xml View File

@@ -151,7 +151,9 @@
=================================================================== ===================================================================
--> -->
<target name="prepare"> <target name="prepare">
<tstamp />
<tstamp>
<format property="year" pattern="yyyy" />
</tstamp>
</target> </target>


<!-- <!--
@@ -561,7 +563,7 @@
<group title="Core Tasks" packages="org.apache.tools.ant.taskdefs*" /> <group title="Core Tasks" packages="org.apache.tools.ant.taskdefs*" />
<group title="Optional Tasks" packages="org.apache.tools.ant.taskdefs.optional*" /> <group title="Optional Tasks" packages="org.apache.tools.ant.taskdefs.optional*" />


<bottom>Copyright &#169; 1999-2001 Apache Software Foundation. All Rights Reserved.</bottom>
<bottom>Copyright &#169; 1999-${year} Apache Software Foundation. All Rights Reserved.</bottom>
</javadoc> </javadoc>
</target> </target>


+ 20
- 10
src/main/org/apache/tools/ant/taskdefs/Javadoc.java View File

@@ -58,6 +58,7 @@ import java.util.*;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
import org.apache.tools.ant.Task; import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.*; import org.apache.tools.ant.types.*;


@@ -627,22 +628,23 @@ public class Javadoc extends Task {
} }


public class GroupArgument { public class GroupArgument {
private String title;
private Html title2;
private Html title;
private Vector packages = new Vector(3); private Vector packages = new Vector(3);


public GroupArgument() { public GroupArgument() {
} }


public void setTitle(String src) { public void setTitle(String src) {
title = src;
Html h = new Html();
h.addText(src);
addTitle(h);
} }
public void addTitle(Html text) { public void addTitle(Html text) {
title2 = text;
title = text;
} }


public String getTitle() { public String getTitle() {
return title2 != null ? title2.getText() : title;
return title != null ? title.getText() : null;
} }


public void setPackages(String src) { public void setPackages(String src) {
@@ -700,19 +702,19 @@ public class Javadoc extends Task {


if (doctitle != null) { if (doctitle != null) {
cmd.createArgument().setValue("-doctitle"); cmd.createArgument().setValue("-doctitle");
cmd.createArgument().setValue(doctitle.getText());
cmd.createArgument().setValue(expand(doctitle.getText()));
} }
if (header != null) { if (header != null) {
cmd.createArgument().setValue("-header"); cmd.createArgument().setValue("-header");
cmd.createArgument().setValue(header.getText());
cmd.createArgument().setValue(expand(header.getText()));
} }
if (footer != null) { if (footer != null) {
cmd.createArgument().setValue("-footer"); cmd.createArgument().setValue("-footer");
cmd.createArgument().setValue(footer.getText());
cmd.createArgument().setValue(expand(footer.getText()));
} }
if (bottom != null) { if (bottom != null) {
cmd.createArgument().setValue("-bottom"); cmd.createArgument().setValue("-bottom");
cmd.createArgument().setValue(bottom.getText());
cmd.createArgument().setValue(expand(bottom.getText()));
} }


Commandline toExecute = (Commandline)cmd.clone(); Commandline toExecute = (Commandline)cmd.clone();
@@ -844,7 +846,7 @@ public class Javadoc extends Task {
throw new BuildException("The title and packages must be specified for group elements."); throw new BuildException("The title and packages must be specified for group elements.");
} }
toExecute.createArgument().setValue("-group"); toExecute.createArgument().setValue("-group");
toExecute.createArgument().setValue(title);
toExecute.createArgument().setValue(expand(title));
toExecute.createArgument().setValue(packages); toExecute.createArgument().setValue(packages);
} }
} }
@@ -1039,4 +1041,12 @@ public class Javadoc extends Task {
} }
} }


/**
* Convenience method to expand properties.
*/
protected String expand(String content) {
return ProjectHelper.replaceProperties(project, content,
project.getProperties());
}

} }

Loading…
Cancel
Save