You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2011/12/08 03:33:47 UTC
svn commit: r1211745 -
/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
Author: bimargulies
Date: Thu Dec 8 02:33:47 2011
New Revision: 1211745
URL: http://svn.apache.org/viewvc?rev=1211745&view=rev
Log:
CXF-3964: simplify code. The maven-artifact-resolver is the right API for what this is trying to do.
This doesn't make the M3 bug disappear, but it makes this code easier to read.
Modified:
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java?rev=1211745&r1=1211744&r2=1211745&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java Thu Dec 8 02:33:47 2011
@@ -27,6 +27,7 @@ import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
@@ -38,19 +39,15 @@ import org.apache.cxf.BusFactory;
import org.apache.cxf.helpers.FileUtils;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.wsdlto.WSDLToJava;
+import org.apache.maven.ProjectDependenciesResolver;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectUtils;
import org.apache.maven.settings.Proxy;
import org.codehaus.plexus.archiver.jar.JarArchiver;
import org.codehaus.plexus.archiver.jar.Manifest;
@@ -167,15 +164,6 @@ public class WSDL2JavaMojo extends Abstr
String excludes[];
/**
- * The local repository taken from Maven's runtime. Typically $HOME/.m2/repository.
- *
- * @parameter expression="${localRepository}"
- * @readonly
- * @required
- */
- private ArtifactRepository localRepository;
-
- /**
* Artifact factory, needed to create artifacts.
*
* @component
@@ -185,24 +173,6 @@ public class WSDL2JavaMojo extends Abstr
private ArtifactFactory artifactFactory;
/**
- * The remote repositories used as specified in your POM.
- *
- * @parameter expression="${project.repositories}"
- * @readonly
- * @required
- */
- private List repositories;
-
- /**
- * Artifact repository factory component.
- *
- * @component
- * @readonly
- * @required
- */
- private ArtifactRepositoryFactory artifactRepositoryFactory;
-
- /**
* The Maven session.
*
* @parameter expression="${session}"
@@ -210,13 +180,13 @@ public class WSDL2JavaMojo extends Abstr
* @required
*/
private MavenSession mavenSession;
-
+
/**
* @component
* @readonly
* @required
*/
- private ArtifactResolver artifactResolver;
+ private ProjectDependenciesResolver projectDependencyResolver;
/**
* The plugin dependencies, needed for the fork mode.
@@ -320,50 +290,34 @@ public class WSDL2JavaMojo extends Abstr
return effectiveWsdlOptions;
}
- @SuppressWarnings("unchecked")
- private Artifact resolveRemoteWsdlArtifact(List remoteRepos, Artifact artifact)
+ private Artifact resolveRemoteWsdlArtifact(Artifact artifact)
throws MojoExecutionException {
- /**
- * First try to find the artifact in the reactor projects of the maven session.
- * So an artifact that is not yet built can be resolved
- */
- List<MavenProject> rProjects = mavenSession.getSortedProjects();
- for (MavenProject rProject : rProjects) {
- if (artifact.getGroupId().equals(rProject.getGroupId())
- && artifact.getArtifactId().equals(rProject.getArtifactId())
- && artifact.getVersion().equals(rProject.getVersion())) {
- Set<Artifact> artifacts = rProject.getArtifacts();
- for (Artifact pArtifact : artifacts) {
- if ("wsdl".equals(pArtifact.getType())) {
- return pArtifact;
- }
- }
- }
- }
-
- /**
- * If this did not work resolve the artifact using the artifactResolver
- */
+ Collection<String> scopes = new ArrayList<String>();
+ scopes.add(artifact.getScope());
+ Set<Artifact> resolvedArtifacts = null;
try {
- artifactResolver.resolve(artifact, remoteRepos, localRepository);
+ resolvedArtifacts = projectDependencyResolver.resolve(project, scopes, mavenSession);
} catch (ArtifactResolutionException e) {
throw new MojoExecutionException("Error downloading wsdl artifact.", e);
} catch (ArtifactNotFoundException e) {
throw new MojoExecutionException("Resource can not be found.", e);
- }
+ }
- return artifact;
+ if (resolvedArtifacts != null && resolvedArtifacts.size() != 0) {
+ for (Artifact pArtifact : resolvedArtifacts) {
+ if ("wsdl".equals(pArtifact.getType())) {
+ getLog().info(String.format("%s resolved to %s",
+ pArtifact.toString(), pArtifact.getFile().getAbsolutePath()));
+ return pArtifact;
+ }
+ }
+ }
+ throw new MojoExecutionException(String.format("Failed to resolve WSDL artifact %s",
+ artifact.toString()));
}
private void downloadRemoteWsdls(List<WsdlOption> effectiveWsdlOptions) throws MojoExecutionException {
- List remoteRepos;
- try {
- remoteRepos = ProjectUtils.buildArtifactRepositories(repositories, artifactRepositoryFactory,
- mavenSession.getContainer());
- } catch (InvalidRepositoryException e) {
- throw new MojoExecutionException("Error build repositories for remote wsdls", e);
- }
for (WsdlOption wsdlOption : effectiveWsdlOptions) {
WsdlArtifact wsdlA = wsdlOption.getWsdlArtifact();
@@ -373,7 +327,7 @@ public class WSDL2JavaMojo extends Abstr
Artifact wsdlArtifact = artifactFactory.createArtifact(wsdlA.getGroupId(), wsdlA.getArtifactId(),
wsdlA.getVersion(),
Artifact.SCOPE_COMPILE, wsdlA.getType());
- wsdlArtifact = resolveRemoteWsdlArtifact(remoteRepos, wsdlArtifact);
+ wsdlArtifact = resolveRemoteWsdlArtifact(wsdlArtifact);
if (wsdlArtifact != null) {
File supposedFile = wsdlArtifact.getFile();
if (!supposedFile.exists() || !supposedFile.isFile()) {