diff options
author | Andy Clement <aclement@pivotal.io> | 2021-05-28 09:15:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-28 09:15:32 -0700 |
commit | 82df3f0fc9842758f15f12299c9113e48f1ccb5c (patch) | |
tree | 5a88144ed48769d26b990502384c76b4219d4f6a | |
parent | 6d1b57b0abafebd7bce63a7e16cb6eb9e0e369cc (diff) | |
parent | 39e93564bd831f74675f7917fc2746b71b510424 (diff) | |
download | aspectj-82df3f0fc9842758f15f12299c9113e48f1ccb5c.tar.gz aspectj-82df3f0fc9842758f15f12299c9113e48f1ccb5c.zip |
Merge pull request #62 from kriegaex/release-1.9.7.M3
Bugfix release 1.9.7.M3
-rw-r--r-- | ajdoc/src/main/java/org/aspectj/tools/ajdoc/JavadocRunner.java | 50 | ||||
-rw-r--r-- | ajdoc/src/main/java/org/aspectj/tools/ajdoc/Main.java | 16 | ||||
-rw-r--r-- | docs/developer/RELEASE.md | 3 |
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" |