diff --git a/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessor.java b/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessor.java
index 3f10dc8cb1..feb1f4331f 100644
--- a/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessor.java
+++ b/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,6 +16,7 @@
package org.glassfish.jersey.wadl.doclet;
+import jdk.javadoc.doclet.DocletEnvironment;
import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.ClassDocType;
import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.MethodDocType;
import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.ParamDocType;
@@ -60,6 +61,7 @@ public interface DocProcessor {
* @param classDocType the {@link ClassDocType} to extend. This will later be processed by the
* {@link org.glassfish.jersey.server.wadl.WadlGenerator}s.
*/
+ @Deprecated
void processClassDoc(TypeElement classDoc, ClassDocType classDocType);
/**
@@ -69,6 +71,7 @@ public interface DocProcessor {
* @param methodDocType the related {@link MethodDocType} that will later be processed by the
* {@link org.glassfish.jersey.server.wadl.WadlGenerator}s.
*/
+ @Deprecated
void processMethodDoc(ExecutableElement methodDoc, MethodDocType methodDocType);
/**
@@ -79,6 +82,45 @@ public interface DocProcessor {
* @param paramDocType the {@link ParamDocType} to extend. This will later be processed by the
* {@link org.glassfish.jersey.server.wadl.WadlGenerator}s.
*/
+ @Deprecated
void processParamTag(VariableElement parameter, ParamDocType paramDocType);
+ /**
+ * Use this method to extend the provided {@link ClassDocType} with the information from
+ * the given {@link TypeElement}.
+ *
+ * @param classDoc the class javadoc
+ * @param classDocType the {@link ClassDocType} to extend. This will later be processed by the
+ * {@link org.glassfish.jersey.server.wadl.WadlGenerator}s.
+ * @param docEnv the doclet environment used to extract info from classDoc
+ */
+ default void processClassDocWithDocEnv(TypeElement classDoc, ClassDocType classDocType, DocletEnvironment docEnv) {
+ processClassDoc(classDoc, classDocType);
+ }
+
+ /**
+ * Process the provided methodDoc and add your custom information to the methodDocType.
+ *
+ * @param methodDoc the {@link ExecutableElement} representing the docs of your method.
+ * @param methodDocType the related {@link MethodDocType} that will later be processed by the
+ * {@link org.glassfish.jersey.server.wadl.WadlGenerator}s.
+ * @param docEnv the doclet environment used to extract info from methodDoc
+ */
+ default void processMethodDocWithDocEnv(ExecutableElement methodDoc, MethodDocType methodDocType, DocletEnvironment docEnv) {
+ processMethodDoc(methodDoc, methodDocType);
+ }
+
+ /**
+ * Use this method to extend the provided {@link ParamDocType} with the information from the
+ * given {@link VariableElement}.
+ *
+ * @param parameter the parameter (that is documented or not)
+ * @param paramDocType the {@link ParamDocType} to extend. This will later be processed by the
+ * {@link org.glassfish.jersey.server.wadl.WadlGenerator}s.
+ * @param docEnv the Doclet Environment used to extract info from parameter
+ */
+ default void processParamTagWithDocEnv(VariableElement parameter, ParamDocType paramDocType, DocletEnvironment docEnv) {
+ processParamTag(parameter, paramDocType);
+ }
+
}
diff --git a/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessorWrapper.java b/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessorWrapper.java
index aa3e28dfdb..03407dba02 100644
--- a/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessorWrapper.java
+++ b/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/DocProcessorWrapper.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -20,13 +20,13 @@
import java.util.Arrays;
import java.util.List;
+import jdk.javadoc.doclet.DocletEnvironment;
import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.ClassDocType;
import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.MethodDocType;
import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.ParamDocType;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.ExecutableElement;
-import com.sun.source.doctree.ParamTree;
import javax.lang.model.element.VariableElement;
public class DocProcessorWrapper implements DocProcessor {
@@ -96,4 +96,30 @@ public void processParamTag(VariableElement parameter,
}
}
+ @Override
+ public void processClassDocWithDocEnv(TypeElement classDoc,
+ ClassDocType classDocType,
+ DocletEnvironment docEnv) {
+ for (DocProcessor docProcessor : _docProcessors) {
+ docProcessor.processClassDocWithDocEnv(classDoc, classDocType, docEnv);
+ }
+ }
+
+ @Override
+ public void processMethodDocWithDocEnv(ExecutableElement methodDoc,
+ MethodDocType methodDocType,
+ DocletEnvironment docEnv) {
+ for (DocProcessor docProcessor : _docProcessors) {
+ docProcessor.processMethodDocWithDocEnv(methodDoc, methodDocType, docEnv);
+ }
+ }
+
+ @Override
+ public void processParamTagWithDocEnv(VariableElement parameter,
+ ParamDocType paramDocType,
+ DocletEnvironment docEnv) {
+ for (DocProcessor docProcessor : _docProcessors) {
+ docProcessor.processParamTagWithDocEnv(parameter, paramDocType, docEnv);
+ }
+ }
}
diff --git a/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/ResourceDoclet.java b/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/ResourceDoclet.java
index 944413f53b..64e24f42c9 100644
--- a/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/ResourceDoclet.java
+++ b/ext/wadl-doclet/src/main/java12/org/glassfish/jersey/wadl/doclet/ResourceDoclet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -157,7 +157,7 @@ public boolean run(DocletEnvironment docEnv) {
ClassDocType classDocType = new ClassDocType();
classDocType.setClassName(element.getQualifiedName().toString());
classDocType.setCommentText(getComments(docCommentTree));
- docProcessor.processClassDoc(element, classDocType);
+ docProcessor.processClassDocWithDocEnv(element, classDocType, docEnv);
for (ExecutableElement method : ElementFilter.methodsIn(element.getEnclosedElements())) {
Map> tags = getTags(docTrees.getDocCommentTree(method));
MethodTree methodTree = docTrees.getTree(method);
@@ -172,7 +172,7 @@ public boolean run(DocletEnvironment docEnv) {
arguments.append(parameter.asType()).append(COMA);
if (paramDocType != null) {
methodDocType.getParamDocs().add(paramDocType);
- docProcessor.processParamTag(parameter, paramDocType);
+ docProcessor.processParamTagWithDocEnv(parameter, paramDocType, docEnv);
}
}
// Remove last comma if there are parameters
@@ -181,7 +181,7 @@ public boolean run(DocletEnvironment docEnv) {
}
arguments.append(")");
methodDocType.setMethodSignature(arguments.toString());
- docProcessor.processMethodDoc(method, methodDocType);
+ docProcessor.processMethodDocWithDocEnv(method, methodDocType, docEnv);
methodDocType.setRequestDoc(buildRequestDocType(tags));
methodDocType.setResponseDoc(buildResponseDocType(tags));
classDocType.getMethodDocs().add(methodDocType);