Browse Source

removes fork option from Apt, in code, in docs.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278229 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 20 years ago
parent
commit
4439a0410e
5 changed files with 53 additions and 13 deletions
  1. +15
    -3
      docs/manual/CoreTasks/apt.html
  2. +13
    -0
      src/etc/testcases/taskdefs/apt.xml
  3. +14
    -10
      src/main/org/apache/tools/ant/taskdefs/Apt.java
  4. +6
    -0
      src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java
  5. +5
    -0
      src/testcases/org/apache/tools/ant/taskdefs/AptTest.java

+ 15
- 3
docs/manual/CoreTasks/apt.html View File

@@ -7,11 +7,23 @@
<h2><a name="Apt">Apt</a></h2> <h2><a name="Apt">Apt</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Runs the annotation processor tool (apt), and then optionally compiles <p>Runs the annotation processor tool (apt), and then optionally compiles
the original code, and any generated source code. This task requires Java1.5 or later.</p>
the original code, and any generated source code. This task requires Java 1.5.
It may work on later versions, but this cannot be confirmed until those
versions ship. Be advised that the Apt tool does appear to be an unstable
part of the JDK framework, so may change radically in future versions.
If the &lt;apt&gt; task does break when upgrading JVM, please
check to see if there is a more recent version of Ant that tracks
any changes.</p>




<p>This task inherits from the <a href="javac.html">Javac Task</a>, and thus <p>This task inherits from the <a href="javac.html">Javac Task</a>, and thus
supports all of the same attributes, and subelements. In addition, it supports
supports nearly all of the same attributes, and subelements.
There is one special case, the <tt>fork</tt> attribute, which is present
but which can only be set to <tt>true</tt>. That is, apt only works as
a forked process.
</p>
<p>
In addition, it supports
the following addition items:</p> the following addition items:</p>


<h3>Parameters</h3> <h3>Parameters</h3>
@@ -109,7 +121,7 @@ AnnotationProcessor instances.</p>
<h3>Notes</h3> <h3>Notes</h3>


<p> <p>
The inherited "fork" attribute is set to true by default.
The inherited "fork" attribute is set to true by default; please do not change it.
</p> </p>


<p> <p>


+ 13
- 0
src/etc/testcases/taskdefs/apt.xml View File

@@ -59,6 +59,18 @@
<assertAptExampleCompiled /> <assertAptExampleCompiled />
</target> </target>



<target name="testAptForkFalse" depends="init">
<apt srcdir="${src}"
destdir="${classes.dir}"
debug="on"
compile="true"
fork="false"
preprocessdir="${preprocess.dir}">
</apt>
<assertAptExampleCompiled />
</target>

<target name="testListAnnotationTypes" depends="init"> <target name="testListAnnotationTypes" depends="init">
<apt srcdir="${src}" <apt srcdir="${src}"
destdir="${classes.dir}" destdir="${classes.dir}"
@@ -105,4 +117,5 @@







</project> </project>

+ 14
- 10
src/main/org/apache/tools/ant/taskdefs/Apt.java View File

@@ -51,6 +51,12 @@ public class Apt
/** A warning message if used with java < 1.5. */ /** A warning message if used with java < 1.5. */
public static final String ERROR_WRONG_JAVA_VERSION public static final String ERROR_WRONG_JAVA_VERSION
= "Apt task requires Java 1.5+"; = "Apt task requires Java 1.5+";
/**
* exposed for debug messages
*/
public static final String WARNING_IGNORING_FORK =
"Apt only runs in its own JVM; fork=false option ignored";


/** /**
* The nested option element. * The nested option element.
@@ -103,7 +109,7 @@ public class Apt
*/ */
public Apt() { public Apt() {
super(); super();
super.setCompiler(AptCompilerAdapter.class.getName());
super.setCompiler(AptExternalCompilerAdapter.class.getName());
setFork(true); setFork(true);
} }


@@ -126,16 +132,15 @@ public class Apt
} }


/** /**
* Set the fork attribute (optional, default=true).
* If fork is true run the external apt command.
* If fork is false run the apt compiler in the same jvm as the task.
* @param fork if true use the external command.
* Set the fork attribute.
* Non-forking APT is highly classpath dependent and appears to be too
* brittle to work. The sole reason this attribute is retained
* is the superclass does it
* @param fork if false; warn the option is ignored.
*/ */
public void setFork(boolean fork) { public void setFork(boolean fork) {
if (fork) {
super.setCompiler(AptExternalCompilerAdapter.class.getName());
} else {
super.setCompiler(AptCompilerAdapter.class.getName());
if (!fork) {
log(WARNING_IGNORING_FORK,Project.MSG_WARN);
} }
} }


@@ -258,7 +263,6 @@ public class Apt
if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_5)) { if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_5)) {
throw new BuildException(ERROR_WRONG_JAVA_VERSION); throw new BuildException(ERROR_WRONG_JAVA_VERSION);
} }

super.execute(); super.execute();
} }
} }

+ 6
- 0
src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java View File

@@ -60,6 +60,12 @@ import java.util.Vector;
* } * }
* </pre> * </pre>
* *
* This Adapter is designed to run Apt in-JVM, an option that is not actually
* exposed to end-users, because it was too brittle during beta testing; classpath
* problems being the core issue.
*
*
*
* @since Ant 1.7 * @since Ant 1.7
*/ */
public class AptCompilerAdapter extends DefaultCompilerAdapter { public class AptCompilerAdapter extends DefaultCompilerAdapter {


+ 5
- 0
src/testcases/org/apache/tools/ant/taskdefs/AptTest.java View File

@@ -45,6 +45,11 @@ public class AptTest extends BuildFileTest {
public void testAptFork() { public void testAptFork() {
executeTarget("testAptFork"); executeTarget("testAptFork");
} }
public void testAptForkFalse() {
executeTarget("testAptForkFalse");
assertLogContaining(Apt.WARNING_IGNORING_FORK);
}


public void testListAnnotationTypes() { public void testListAnnotationTypes() {
executeTarget("testListAnnotationTypes"); executeTarget("testListAnnotationTypes");


Loading…
Cancel
Save