aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ajdoc/src/main/java/org/aspectj/tools/ajdoc/JavadocRunner.java50
-rw-r--r--ajdoc/src/main/java/org/aspectj/tools/ajdoc/Main.java16
-rw-r--r--docs/developer/RELEASE.md3
3 files changed, 48 insertions, 21 deletions
diff --git a/ajdoc/src/main/java/org/aspectj/tools/ajdoc/JavadocRunner.java b/ajdoc/src/main/java/org/aspectj/tools/ajdoc/JavadocRunner.java
index e1bbd9ad4..21c56d160 100644
--- a/ajdoc/src/main/java/org/aspectj/tools/ajdoc/JavadocRunner.java
+++ b/ajdoc/src/main/java/org/aspectj/tools/ajdoc/JavadocRunner.java
@@ -1,39 +1,55 @@
/* *******************************************************************
- * Copyright (c) 1999-2001 Xerox Corporation,
+ * Copyright (c) 1999-2001 Xerox Corporation,
* 2002 Palo Alto Research Center, Incorporated (PARC).
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Xerox/PARC initial implementation
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Xerox/PARC initial implementation
* Mik Kersten port to AspectJ 1.1+ code base
* ******************************************************************/
package org.aspectj.tools.ajdoc;
-import java.util.List;
-import java.util.Vector;
-
import javax.tools.DocumentationTool;
import javax.tools.DocumentationTool.DocumentationTask;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
/**
* @author Mik Kersten
*/
class JavadocRunner {
+ static void callJavadoc(String[] javadocArgs) {
+ try {
+ Class.forName("com.sun.tools.javadoc.Main")
+ .getMethod("execute", String[].class)
+ .invoke(null, new Object[] { javadocArgs });
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ throw new RuntimeException("Failed to invoke javadoc", e);
+ }
+ }
+
public static void callJavadocViaToolProvider(Iterable<String> options, List<String> files) {
- DocumentationTool doctool = ToolProvider.getSystemDocumentationTool();
- StandardJavaFileManager fm = doctool.getStandardFileManager(null, null, null);
- Iterable<? extends JavaFileObject> jfos = fm.getJavaFileObjects(files.toArray(new String[0]));
- DocumentationTask task = doctool.getTask(null/*standard System.err*/, null/*standard file manager*/,
- null/*default diagnostic listener*/, null/*standard doclet*/, options, jfos);
+ DocumentationTool docTool = ToolProvider.getSystemDocumentationTool();
+ StandardJavaFileManager fileManager = docTool.getStandardFileManager(null, null, null);
+ Iterable<? extends JavaFileObject> fileObjects = fileManager.getJavaFileObjects(files.toArray(new String[0]));
+ DocumentationTask task = docTool.getTask(
+ null, // default output writer (System.err)
+ null, // default file manager
+ null, // default diagnostic listener
+ null, // default doclet class
+ options,
+ fileObjects
+ );
task.call();
}
}
diff --git a/ajdoc/src/main/java/org/aspectj/tools/ajdoc/Main.java b/ajdoc/src/main/java/org/aspectj/tools/ajdoc/Main.java
index 53edcb42d..9f728a946 100644
--- a/ajdoc/src/main/java/org/aspectj/tools/ajdoc/Main.java
+++ b/ajdoc/src/main/java/org/aspectj/tools/ajdoc/Main.java
@@ -22,12 +22,20 @@ import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Hashtable;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.Vector;
import org.aspectj.asm.AsmManager;
import org.aspectj.bridge.IMessage;
import org.aspectj.bridge.Version;
import org.aspectj.util.FileUtil;
+import org.aspectj.util.LangUtil;
/**
* This is an old implementation of ajdoc that does not use an OO style. However, it does the job, and should serve to evolve a
@@ -256,8 +264,10 @@ public class Main implements Config {
for (int k = 0; k < fileList.size(); k++) {
javadocargs[numExtraArgs + options.size() + packageList.size() + k] = fileList.elementAt(k);
}
+ if (LangUtil.is9VMOrGreater()) {
options = new Vector<>();
Collections.addAll(options, javadocargs);
+ }
} else {
javadocargs = new String[options.size() + signatureFiles.length];
for (int k = 0; k < options.size(); k++) {
@@ -270,7 +280,11 @@ public class Main implements Config {
files.add(StructureUtil.translateAjPathName(signatureFile.getCanonicalPath()));
}
}
+ if (LangUtil.is9VMOrGreater()) {
JavadocRunner.callJavadocViaToolProvider(options, files);
+ } else {
+ JavadocRunner.callJavadoc(javadocargs);
+ }
}
/**
diff --git a/docs/developer/RELEASE.md b/docs/developer/RELEASE.md
index 89ecde1e8..785a0ebdd 100644
--- a/docs/developer/RELEASE.md
+++ b/docs/developer/RELEASE.md
@@ -68,9 +68,6 @@ mvn versions:set -DnewVersion=1.9.7.M2
# Verify if the POM changes are OK, then remove the POM backup files
mvn versions:commit
-# Commit the release POMs to Git
-git commit -am "Set version to 1.9.7.M2"
-
# Set some environment variables needed by Nexus Staging Maven plugin on JDK 16,
# until https://issues.sonatype.org/browse/OSSRH-66257 is resolved
export MAVEN_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED"