aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java187
1 files changed, 0 insertions, 187 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java
deleted file mode 100644
index 9503ac02..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/AptCompilerAdapter.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.compilers;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.Apt;
-import org.apache.tools.ant.types.Commandline;
-import org.apache.tools.ant.types.Path;
-
-
-/**
- * <p>The implementation of the apt compiler for JDK 1.5.</p>
- *
- * <p>As usual, the low level entry points for Java tools are neither documented or
- * stable; this entry point may change from that of 1.5.0_01-b08 without any
- * warning at all. The IDE decompile of the tool entry points is as follows:</p>
- * <pre>
- * public class Main {
- * public Main() ;
- *
- * public static transient void main(String... strings);
- *
- * public static transient int process(String... strings);
- *
- * public static transient int process(PrintWriter printWriter,
- * String... strings);
- * public static transient int process(
- * AnnotationProcessorFactory annotationProcessorFactory,
- * String... strings);
- *
- * public static transient int process(
- * AnnotationProcessorFactory annotationProcessorFactory,
- * PrintWriter printWriter,
- * String... strings);
- * private static transient int processing(
- * AnnotationProcessorFactory annotationProcessorFactory,
- * PrintWriter printWriter,
- * String... strings) ;
- * }
- * </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
- */
-public class AptCompilerAdapter extends DefaultCompilerAdapter {
-
- /**
- * Integer returned by the Apt compiler to indicate success.
- */
- private static final int APT_COMPILER_SUCCESS = 0;
- /**
- * class in tools.jar that implements APT
- */
- public static final String APT_ENTRY_POINT = "com.sun.tools.apt.Main";
-
- /**
- * method used to compile.
- */
- public static final String APT_METHOD_NAME = "process";
-
- /**
- * Get the facade task that fronts this adapter
- *
- * @return task instance
- * @see DefaultCompilerAdapter#getJavac()
- */
- protected Apt getApt() {
- return (Apt) getJavac();
- }
-
- /**
- * Using the front end arguments, set up the command line to run Apt
- *
- * @param apt task
- * @param cmd command that is set up with the various switches from the task
- * options
- */
- static void setAptCommandlineSwitches(final Apt apt, final Commandline cmd) {
-
- if (!apt.isCompile()) {
- cmd.createArgument().setValue("-nocompile");
- }
-
- // Process the factory class
- final String factory = apt.getFactory();
- if (factory != null) {
- cmd.createArgument().setValue("-factory");
- cmd.createArgument().setValue(factory);
- }
-
- // Process the factory path
- final Path factoryPath = apt.getFactoryPath();
- if (factoryPath != null) {
- cmd.createArgument().setValue("-factorypath");
- cmd.createArgument().setPath(factoryPath);
- }
-
- final File preprocessDir = apt.getPreprocessDir();
- if (preprocessDir != null) {
- cmd.createArgument().setValue("-s");
- cmd.createArgument().setFile(preprocessDir);
- }
-
- // Process the processor options
- final Vector options = apt.getOptions();
- final Enumeration elements = options.elements();
- Apt.Option opt;
- StringBuffer arg = null;
- while (elements.hasMoreElements()) {
- opt = (Apt.Option) elements.nextElement();
- arg = new StringBuffer();
- arg.append("-A").append(opt.getName());
- if (opt.getValue() != null) {
- arg.append("=").append(opt.getValue());
- }
- cmd.createArgument().setValue(arg.toString());
- }
- }
-
- /**
- * using our front end task, set up the command line switches
- *
- * @param cmd command line to set up
- */
- protected void setAptCommandlineSwitches(final Commandline cmd) {
- final Apt apt = getApt();
- setAptCommandlineSwitches(apt, cmd);
- }
-
- /**
- * Run the compilation.
- * @return true on success.
- * @throws BuildException if the compilation has problems.
- */
- public boolean execute() throws BuildException {
- attributes.log("Using apt compiler", Project.MSG_VERBOSE);
- //set up the javac options
- final Commandline cmd = setupModernJavacCommand();
- //then add the Apt options
- setAptCommandlineSwitches(cmd);
-
- //finally invoke APT
- // Use reflection to be able to build on all JDKs:
- try {
- final Class c = Class.forName(APT_ENTRY_POINT);
- final Object compiler = c.newInstance();
- final Method compile = c.getMethod(APT_METHOD_NAME,
- new Class[]{(new String[]{}).getClass()});
- final int result = ((Integer) compile.invoke
- (compiler, new Object[]{cmd.getArguments()}))
- .intValue();
- return (result == APT_COMPILER_SUCCESS);
- } catch (final BuildException be) {
- //rethrow build exceptions
- throw be;
- } catch (final Exception ex) {
- //cast everything else to a build exception
- throw new BuildException("Error starting apt compiler",
- ex, location);
- }
- }
-}