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 + 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 ${cxf.jdk.version}