diff --git a/maven-plugins/java2wadl-plugin/pom.xml b/maven-plugins/java2wadl-plugin/pom.xml
index 4a972b86f50..64ded259729 100644
--- a/maven-plugins/java2wadl-plugin/pom.xml
+++ b/maven-plugins/java2wadl-plugin/pom.xml
@@ -124,10 +124,6 @@
org.apache.maven
maven-toolchain
-
- org.apache.maven.doxia
- *
-
@@ -147,6 +143,26 @@
cxf-java2wadl
+
+ org.apache.maven.plugins
+ maven-invoker-plugin
+
+
+ test-integration
+
+ install
+ integration-test
+ verify
+
+
+ src/it/settings.xml
+ ${project.build.directory}/it
+ ${maven.test.skip.exec}
+ ${project.build.directory}/it-repo
+
+
+
+
diff --git a/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/pom.xml b/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/pom.xml
new file mode 100644
index 00000000000..7c89af967f7
--- /dev/null
+++ b/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/pom.xml
@@ -0,0 +1,59 @@
+
+ 4.0.0
+
+ org.apache.cxf.it
+ java-generate-rx
+ 1.0.0-SNAPSHOT
+ jar
+ java-generate-rx
+
+
+
+ org.apache.cxf
+ cxf-rt-frontend-jaxrs
+ @project.version@
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.13.0
+
+
+ 17
+
+
+
+ org.apache.cxf
+ cxf-java2wadl-plugin
+ @project.version@
+
+
+ parsejavadoc
+ generate-sources
+
+ parsejavadoc
+
+
+
+ process-classes
+ process-classes
+
+ java2wadl
+
+
+
+ application.Test1
+ application.Test2
+
+ org.apache.cxf.maven_plugin.javatowadl.ResourceMapJavaDocProvider
+ true
+
+
+
+
+
+
+
diff --git a/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/src/main/java/application/Test1.java b/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/src/main/java/application/Test1.java
new file mode 100644
index 00000000000..68eca5145ca
--- /dev/null
+++ b/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/src/main/java/application/Test1.java
@@ -0,0 +1,22 @@
+/**
+ * Created by Apache CXF WadlToJava code generator
+**/
+package application;
+
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import java.util.concurrent.CompletableFuture;
+import org.apache.cxf.jaxrs.ext.multipart.Multipart;
+
+@Path("/1")
+public interface Test1 {
+
+ @PUT
+ @Consumes("multipart/mixed")
+ @Produces("text/plain")
+ CompletableFuture put(@QueryParam("standalone") Boolean standalone, @Multipart("action") String action, @Multipart(value = "sources", required = false) String sources);
+
+}
diff --git a/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/src/main/java/application/Test2.java b/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/src/main/java/application/Test2.java
new file mode 100644
index 00000000000..e0fe57b81ff
--- /dev/null
+++ b/maven-plugins/java2wadl-plugin/src/it/java-generate-rx/src/main/java/application/Test2.java
@@ -0,0 +1,18 @@
+/**
+ * Created by Apache CXF WadlToJava code generator
+**/
+package application;
+
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.QueryParam;
+
+@Path("/2")
+public interface Test2 {
+
+ @PUT
+ @Consumes("application/json")
+ void put(@QueryParam("snapshot") boolean snapshot, String flow);
+
+}
diff --git a/maven-plugins/java2wadl-plugin/src/it/settings.xml b/maven-plugins/java2wadl-plugin/src/it/settings.xml
new file mode 100644
index 00000000000..d29dc39671b
--- /dev/null
+++ b/maven-plugins/java2wadl-plugin/src/it/settings.xml
@@ -0,0 +1,45 @@
+
+
+
+
+ it-repo
+
+ true
+
+
+
+ local.central
+ @localRepositoryUrl@
+
+ true
+
+
+ true
+
+
+
+
+
+ local.central
+ @localRepositoryUrl@
+
+ true
+
+
+ true
+
+
+
+ local.it
+ file://@project.build.directory@/it/repo
+
+ true
+
+
+ true
+
+
+
+
+
+
diff --git a/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/ParseJavaDocMojo.java b/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/ParseJavaDocMojo.java
index 7830be85699..76e681e09c3 100644
--- a/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/ParseJavaDocMojo.java
+++ b/maven-plugins/java2wadl-plugin/src/main/java/org/apache/cxf/maven_plugin/javatowadl/ParseJavaDocMojo.java
@@ -21,10 +21,12 @@
import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.util.List;
import java.util.Locale;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+import org.apache.maven.doxia.tools.SiteTool;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
@@ -34,10 +36,10 @@
import org.apache.maven.plugins.javadoc.options.DocletArtifact;
import org.apache.maven.plugins.javadoc.resolver.ResourceResolver;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
-import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver;
import org.apache.maven.toolchain.ToolchainManager;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
/**
* @goal parsejavadoc
@@ -78,19 +80,6 @@ public class ParseJavaDocMojo extends AbstractMojo {
* @component
*/
private ResourceResolver resourceResolver;
-
- /**
- * @component
- */
- private DependencyResolver dependencyResolver;
-
-
- /**
- * @component
- */
- private ArtifactResolver artifactResolver;
-
-
/**
* @component
@@ -109,15 +98,6 @@ public class ParseJavaDocMojo extends AbstractMojo {
*/
private File dumpFileOutputDirectory;
- /**
- * The local maven repository.
- *
- * @parameter expression="${localRepository}"
- * @required
- * @readonly
- */
- private ArtifactRepository localRepository;
-
/**
* Directory into which assembled {@link JavadocOptions} instances will be written before they
@@ -128,9 +108,37 @@ public class ParseJavaDocMojo extends AbstractMojo {
*/
private File javadocOptionsDir;
+ /**
+ * @component
+ */
+ private RepositorySystem repoSystem;
+
+ /**
+ * @parameter default-value = "${repositorySystemSession}"
+ * @required
+ * @readonly
+ */
+ private RepositorySystemSession repoSession;
+
+ /**
+ * @component
+ */
+ private ArtifactHandlerManager artifactHandlerManager;
+
+ /**
+ * @component
+ */
+ private SiteTool siteTool;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
- AbstractJavadocMojo mojo = new JavadocReport();
+ AbstractJavadocMojo mojo = new JavadocReport(siteTool,
+ archiverManager,
+ resourceResolver,
+ repoSystem,
+ artifactHandlerManager,
+ mavenProjectBuilder,
+ toolchainManager);
Locale locale = Locale.getDefault();
try {
Field f = AbstractJavadocMojo.class.getDeclaredField("doclet");
@@ -164,39 +172,10 @@ public void execute() throws MojoExecutionException, MojoFailureException {
}
f.set(mojo, docletArtifact);
-
- f = AbstractJavadocMojo.class.getDeclaredField("mavenProjectBuilder");
- f.setAccessible(true);
- f.set(mojo, this.mavenProjectBuilder);
-
- f = AbstractJavadocMojo.class.getDeclaredField("resourceResolver");
- f.setAccessible(true);
- f.set(mojo, this.resourceResolver);
-
f = AbstractJavadocMojo.class.getDeclaredField("session");
System.out.println("========>" + session.getProjects());
f.setAccessible(true);
f.set(mojo, this.session);
-
- f = AbstractJavadocMojo.class.getDeclaredField("dependencyResolver");
- f.setAccessible(true);
- f.set(mojo, this.dependencyResolver);
-
- f = AbstractJavadocMojo.class.getDeclaredField("artifactResolver");
- f.setAccessible(true);
- f.set(mojo, this.artifactResolver);
-
- f = AbstractJavadocMojo.class.getDeclaredField("archiverManager");
- f.setAccessible(true);
- f.set(mojo, this.archiverManager);
-
- f = AbstractJavadocMojo.class.getDeclaredField("toolchainManager");
- f.setAccessible(true);
- f.set(mojo, this.toolchainManager);
-
- f = AbstractJavadocMojo.class.getDeclaredField("localRepository");
- f.setAccessible(true);
- f.set(mojo, this.localRepository);
f = AbstractJavadocMojo.class.getDeclaredField("applyJavadocSecurityFix");
f.setAccessible(true);
@@ -221,6 +200,14 @@ public void execute() throws MojoExecutionException, MojoFailureException {
f.set(mojo, dumpFileOutputDirectory);
}
+ f = AbstractJavadocMojo.class.getDeclaredField("reactorProjects");
+ f.setAccessible(true);
+ f.set(mojo, List.of());
+
+ f = AbstractJavadocMojo.class.getDeclaredField("repoSession");
+ f.setAccessible(true);
+ f.set(mojo, repoSession);
+
Method m = AbstractJavadocMojo.class.getDeclaredMethod("executeReport", Locale.class);
m.setAccessible(true);
m.invoke(mojo, locale);
diff --git a/parent/pom.xml b/parent/pom.xml
index f73dee7d2c0..b6a7e5cf8bf 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -2009,7 +2009,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.1
+ 3.11.2
org.ehcache
diff --git a/pom.xml b/pom.xml
index 019da25a296..24994a409f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -472,7 +472,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.1
+ 3.11.2
true