This is an automated email from the ASF dual-hosted git repository. dkulp pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 2d955cf656f11a3de72f200f086fe54448f65fdf Author: Daniel Kulp <[email protected]> AuthorDate: Mon Mar 13 09:39:44 2023 -0400 Since we only support java11+, we can simplify build and just build the java11+ version --- maven-plugins/java2wadl-plugin/pom.xml | 108 ----------- .../cxf/maven_plugin/javatowadl/DumpJavaDoc.java | 215 +++++++++++++++------ .../cxf/maven_plugin/javatowadl/DumpJavaDoc.java | 194 ------------------- 3 files changed, 151 insertions(+), 366 deletions(-) diff --git a/maven-plugins/java2wadl-plugin/pom.xml b/maven-plugins/java2wadl-plugin/pom.xml index 67d566ef3e..183d76662a 100644 --- a/maven-plugins/java2wadl-plugin/pom.xml +++ b/maven-plugins/java2wadl-plugin/pom.xml @@ -127,56 +127,6 @@ </dependencies> <profiles> - <profile> - <id>pre-java9</id> - <dependencies> - <dependency> - <groupId>com.sun</groupId> - <artifactId>tools</artifactId> - <version>1.7.0</version> - <scope>system</scope> - <systemPath>${java.home}/../lib/tools.jar</systemPath> - </dependency> - </dependencies> - <activation> - <file> - <exists>${java.home}/../lib/tools.jar</exists> - </file> - </activation> - </profile> - - <profile> - <id>ibmjdk</id> - <activation> - <property> - <name>java.vendor</name> - <value>IBM Corporation</value> - </property> - </activation> - <dependencies> - <dependency> - <groupId>xerces</groupId> - <artifactId>xercesImpl</artifactId> - </dependency> - </dependencies> - </profile> - <profile> - <id>mac-jdk16</id> - <activation> - <file> - <exists>${java.home}/../Classes/classes.jar</exists> - </file> - </activation> - <dependencies> - <dependency> - <groupId>com.sun</groupId> - <artifactId>tools</artifactId> - <version>1.6.0</version> - <scope>system</scope> - <systemPath>${java.home}/../Classes/classes.jar</systemPath> - </dependency> - </dependencies> - </profile> <profile> <id>setup.eclipse</id> <build> @@ -206,63 +156,5 @@ </plugins> </build> </profile> - - <profile> - <id>jdk13</id> - <activation> - <jdk>[13,)</jdk> - </activation> - <build> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <executions> - <execution> - <id>default-jdk13-compile</id> - <goals> - <goal>compile</goal> - </goals> - <configuration> - <forceJavacCompilerUse>true</forceJavacCompilerUse> - <compileSourceRoots> - <compileSourceRoot>${project.basedir}/src/main/java13</compileSourceRoot> - </compileSourceRoots> - <outputDirectory>${project.build.outputDirectory}/META-INF/versions/13</outputDirectory> - </configuration> - </execution> - </executions> - <configuration> - <release>11</release> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <executions> - <execution> - <id>default-jar</id> - <configuration> - <archive> - <manifestEntries> - <Multi-Release>true</Multi-Release> - </manifestEntries> - </archive> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <configuration> - <release>11</release> - </configuration> - </plugin> - </plugins> - </pluginManagement> - </build> - </profile> </profiles> </project> diff --git a/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java b/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java index d24a2eaca4..692ec27333 100644 --- a/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java +++ b/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java @@ -22,88 +22,175 @@ import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Locale; import java.util.Properties; +import java.util.Set; +import java.util.stream.Collectors; -import com.sun.javadoc.ClassDoc; -import com.sun.javadoc.DocErrorReporter; -import com.sun.javadoc.MethodDoc; -import com.sun.javadoc.ParamTag; -import com.sun.javadoc.Parameter; -import com.sun.javadoc.RootDoc; -import com.sun.javadoc.Tag; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.util.Elements; +import javax.tools.Diagnostic; +import com.sun.source.doctree.DocCommentTree; +import com.sun.source.doctree.DocTree; +import com.sun.source.doctree.ParamTree; +import com.sun.source.doctree.ReturnTree; +import com.sun.source.util.DocTrees; -public final class DumpJavaDoc { - private DumpJavaDoc() { +import jdk.javadoc.doclet.Doclet; +import jdk.javadoc.doclet.DocletEnvironment; +import jdk.javadoc.doclet.Reporter; + +public final class DumpJavaDoc implements Doclet { + private String dumpFileName; + private Reporter reporter; + + private final class DumpJavaDocFileOption implements Option { + @Override + public int getArgumentCount() { + return 1; + } + + @Override + public String getDescription() { + return "Specify the file to dump Javadoc for later use"; + } + + @Override + public Kind getKind() { + return Kind.STANDARD; + } + + @Override + public List<String> getNames() { + return Collections.singletonList("-dumpJavaDocFile"); + } + + @Override + public String getParameters() { + return "theFileToDumpJavaDocForLaterUse"; + } + + @Override + public boolean process(String option, List<String> arguments) { + dumpFileName = arguments.get(0); + return true; + } + } + + public DumpJavaDoc() { + + } + + @Override + public void init(Locale locale, Reporter r) { + this.reporter = r; } - public static boolean start(RootDoc root) throws IOException { - String dumpFileName = readOptions(root.options()); - OutputStream os = Files.newOutputStream(Paths.get(dumpFileName)); - Properties javaDocMap = new Properties(); - for (ClassDoc classDoc : root.classes()) { - javaDocMap.put(classDoc.toString(), classDoc.commentText()); - for (MethodDoc method : classDoc.methods()) { - javaDocMap.put(method.qualifiedName(), method.commentText()); - for (ParamTag paramTag : method.paramTags()) { - Parameter[] parameters = method.parameters(); - for (int i = 0; i < parameters.length; ++i) { - if (parameters[i].name().equals(paramTag.parameterName())) { - javaDocMap.put(method.qualifiedName() + ".paramCommentTag." + i, - paramTag.parameterComment()); + @Override + public String getName() { + return "DumpJavaDoc"; + } + + @Override + public SourceVersion getSupportedSourceVersion() { + return SourceVersion.RELEASE_8; + } + + @Override + public boolean run(DocletEnvironment docEnv) { + final Elements utils = docEnv.getElementUtils(); + final DocTrees docTrees = docEnv.getDocTrees(); + + try (OutputStream os = Files.newOutputStream(Paths.get(dumpFileName))) { + final Properties javaDocMap = new Properties(); + for (Element element : docEnv.getIncludedElements()) { + if (element.getKind() == ElementKind.CLASS) { + final TypeElement classDoc = (TypeElement) element; + final DocCommentTree classCommentTree = docTrees.getDocCommentTree(classDoc); + + if (classCommentTree != null) { + javaDocMap.put(classDoc.toString(), getAllComments(classCommentTree.getFullBody())); + } + + for (Element member: classDoc.getEnclosedElements()) { + // Skip all non-public methods + if (!member.getModifiers().contains(Modifier.PUBLIC)) { + continue; + } + + if (member.getKind() == ElementKind.METHOD) { + final ExecutableElement method = (ExecutableElement) member; + final DocCommentTree methodCommentTree = docTrees.getDocCommentTree(method); + final String qualifiedName = utils.getBinaryName(classDoc) + "." + method.getSimpleName(); + + if (methodCommentTree == null) { + javaDocMap.put(qualifiedName, ""); + } else { + javaDocMap.put(qualifiedName, getAllComments(methodCommentTree.getFullBody())); + for (DocTree tree: methodCommentTree.getBlockTags()) { + if (tree.getKind() == DocTree.Kind.RETURN) { + final ReturnTree returnTree = (ReturnTree) tree; + javaDocMap.put(qualifiedName + ".returnCommentTag", + getAllComments(returnTree.getDescription())); + } else if (tree.getKind() == DocTree.Kind.PARAM) { + final ParamTree paramTree = (ParamTree) tree; + final int index = getParamIndex(method, paramTree); + // CHECKSTYLE:OFF + if (index >= 0) { + javaDocMap.put(qualifiedName + ".paramCommentTag." + index, + getAllComments(paramTree.getDescription())); + } + // CHECKSTYLE:ON + } + } + } } } } - Tag[] retTags = method.tags("return"); - if (retTags != null && retTags.length == 1) { - Tag retTag = method.tags("return")[0]; - javaDocMap.put(method.qualifiedName() + "." + "returnCommentTag", - retTag.text()); - } } - + + javaDocMap.store(os, ""); + os.flush(); + } catch (final IOException ex) { + reporter.print(Diagnostic.Kind.ERROR, ex.getMessage()); } - javaDocMap.store(os, ""); - os.flush(); - os.close(); + return true; } - - private static String readOptions(String[][] options) { - String tagName = null; - for (int i = 0; i < options.length; i++) { - String[] opt = options[i]; - if ("-dumpJavaDocFile".equals(opt[0])) { - tagName = opt[1]; + + private int getParamIndex(final ExecutableElement method, final ParamTree paramTree) { + final List<? extends VariableElement> parameters = method.getParameters(); + + for (int i = 0; i < parameters.size(); ++i) { + if (paramTree.getName().getName().contentEquals(parameters.get(i).getSimpleName())) { + return i; } - } - return tagName; + } + + return -1; } - public static int optionLength(String option) { - if ("-dumpJavaDocFile".equals(option)) { - return 2; - } - return 0; + private String getAllComments(final Collection<? extends DocTree> comments) { + return comments + .stream() + .map(DocTree::toString) + .collect(Collectors.joining()); } - - public static boolean validOptions(String[][] options, DocErrorReporter reporter) { - boolean foundTagOption = false; - for (int i = 0; i < options.length; i++) { - String[] opt = options[i]; - if ("-dumpJavaDocFile".equals(opt[0])) { - if (foundTagOption) { - reporter.printError("Only one -dumpJavaDocFile option allowed."); - return false; - } - foundTagOption = true; - } - } - if (!foundTagOption) { - reporter.printError("Usage: -dumpJavaDocFile theFileToDumpJavaDocForLaterUse..."); - } - return foundTagOption; + + @Override + public Set<Option> getSupportedOptions() { + return Collections.singleton(new DumpJavaDocFileOption()); } } diff --git a/maven-plugins/java2wadl-plugin/src/main/java13/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java b/maven-plugins/java2wadl-plugin/src/main/java13/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java deleted file mode 100644 index 5ca20af500..0000000000 --- a/maven-plugins/java2wadl-plugin/src/main/java13/org/apache/cxf/maven_plugin/javatowadl/DumpJavaDoc.java +++ /dev/null @@ -1,194 +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.cxf.maven_plugin.javatowadl; - -import java.io.IOException; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Locale; -import java.util.Properties; - -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.TypeElement; -import javax.lang.model.element.VariableElement; -import javax.lang.model.util.Elements; -import javax.tools.Diagnostic; - -import com.sun.source.doctree.DocCommentTree; -import com.sun.source.doctree.DocTree; -import com.sun.source.doctree.ParamTree; -import com.sun.source.doctree.ReturnTree; -import com.sun.source.util.DocTrees; - -import java.util.Set; -import java.util.stream.Collectors; - -import javax.lang.model.SourceVersion; - -import jdk.javadoc.doclet.Doclet; -import jdk.javadoc.doclet.DocletEnvironment; -import jdk.javadoc.doclet.Reporter; - -public final class DumpJavaDoc implements Doclet { - private String dumpFileName; - private Reporter reporter; - - private final class DumpJavaDocFileOption implements Option { - @Override - public int getArgumentCount() { - return 1; - } - - @Override - public String getDescription() { - return "Specify the file to dump Javadoc for later use"; - } - - @Override - public Kind getKind() { - return Kind.STANDARD; - } - - @Override - public List<String> getNames() { - return Collections.singletonList("-dumpJavaDocFile"); - } - - @Override - public String getParameters() { - return "theFileToDumpJavaDocForLaterUse"; - } - - @Override - public boolean process(String option, List<String> arguments) { - dumpFileName = arguments.get(0); - return true; - } - } - - public DumpJavaDoc() { - - } - - @Override - public void init(Locale locale, Reporter reporter) { - this.reporter = reporter; - } - - @Override - public String getName() { - return "DumpJavaDoc"; - } - - @Override - public SourceVersion getSupportedSourceVersion() { - return SourceVersion.RELEASE_8; - } - - @Override - public boolean run(DocletEnvironment docEnv) { - final Elements utils = docEnv.getElementUtils(); - final DocTrees docTrees = docEnv.getDocTrees(); - - try (OutputStream os = Files.newOutputStream(Paths.get(dumpFileName))) { - final Properties javaDocMap = new Properties(); - for (Element element : docEnv.getIncludedElements()) { - if (element.getKind() == ElementKind.CLASS) { - final TypeElement classDoc = (TypeElement) element; - final DocCommentTree classCommentTree = docTrees.getDocCommentTree(classDoc); - - if (classCommentTree != null) { - javaDocMap.put(classDoc.toString(), getAllComments(classCommentTree.getFullBody())); - } - - for (Element member: classDoc.getEnclosedElements()) { - // Skip all non-public methods - if (!member.getModifiers().contains(Modifier.PUBLIC)) { - continue; - } - - if (member.getKind() == ElementKind.METHOD) { - final ExecutableElement method = (ExecutableElement) member; - final DocCommentTree methodCommentTree = docTrees.getDocCommentTree(method); - final String qualifiedName = utils.getBinaryName(classDoc) + "." + method.getSimpleName(); - - if (methodCommentTree == null) { - javaDocMap.put(qualifiedName, ""); - } else { - javaDocMap.put(qualifiedName, getAllComments(methodCommentTree.getFullBody())); - for (DocTree tree: methodCommentTree.getBlockTags()) { - if (tree.getKind() == DocTree.Kind.RETURN) { - final ReturnTree returnTree = (ReturnTree) tree; - javaDocMap.put(qualifiedName + ".returnCommentTag", - getAllComments(returnTree.getDescription())); - } else if (tree.getKind() == DocTree.Kind.PARAM) { - final ParamTree paramTree = (ParamTree) tree; - final int index = getParamIndex(method, paramTree); - if (index >= 0) { - javaDocMap.put(qualifiedName + ".paramCommentTag." + index, - getAllComments(paramTree.getDescription())); - } - } - } - } - } - } - } - } - - javaDocMap.store(os, ""); - os.flush(); - } catch (final IOException ex) { - reporter.print(Diagnostic.Kind.ERROR, ex.getMessage()); - } - - return true; - } - - private int getParamIndex(final ExecutableElement method, final ParamTree paramTree) { - final List<? extends VariableElement> parameters = method.getParameters(); - - for (int i = 0; i < parameters.size(); ++i) { - if (paramTree.getName().getName().contentEquals(parameters.get(i).getSimpleName())) { - return i; - } - } - - return -1; - } - - private String getAllComments(final Collection<? extends DocTree> comments) { - return comments - .stream() - .map(DocTree::toString) - .collect(Collectors.joining()); - } - - @Override - public Set<Option> getSupportedOptions() { - return Collections.singleton(new DumpJavaDocFileOption()); - } -}
