Author: ffang
Date: Tue May 21 07:55:46 2013
New Revision: 1484684
URL: http://svn.apache.org/r1484684
Log:
[KARAF-2316]features-maven-plugin ignore proxy settings in maven settings.xml
Modified:
karaf/branches/karaf-2.x/pom.xml
karaf/branches/karaf-2.x/tooling/features-maven-plugin/pom.xml
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GraphArtifactCollector.java
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MojoSupport.java
Modified: karaf/branches/karaf-2.x/pom.xml
URL:
http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/pom.xml?rev=1484684&r1=1484683&r2=1484684&view=diff
==============================================================================
--- karaf/branches/karaf-2.x/pom.xml (original)
+++ karaf/branches/karaf-2.x/pom.xml Tue May 21 07:55:46 2013
@@ -168,7 +168,7 @@
<jline.version>2.10</jline.version>
<jsw.version>3.2.3</jsw.version>
<log4j.version>1.2.17</log4j.version>
- <maven.version>2.0.9</maven.version>
+ <maven.version>3.0-alpha-2</maven.version>
<mina.version>2.0.7</mina.version>
<osgi.version>4.3.1</osgi.version>
<pax.base.version>1.4.0</pax.base.version>
Modified: karaf/branches/karaf-2.x/tooling/features-maven-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/tooling/features-maven-plugin/pom.xml?rev=1484684&r1=1484683&r2=1484684&view=diff
==============================================================================
--- karaf/branches/karaf-2.x/tooling/features-maven-plugin/pom.xml (original)
+++ karaf/branches/karaf-2.x/tooling/features-maven-plugin/pom.xml Tue May 21
07:55:46 2013
@@ -48,6 +48,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
+ <version>3.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
Modified:
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GraphArtifactCollector.java
URL:
http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GraphArtifactCollector.java?rev=1484684&r1=1484683&r2=1484684&view=diff
==============================================================================
---
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GraphArtifactCollector.java
(original)
+++
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GraphArtifactCollector.java
Tue May 21 07:55:46 2013
@@ -37,6 +37,7 @@ import org.apache.maven.artifact.resolve
import org.apache.maven.artifact.resolver.CyclicDependencyException;
import org.apache.maven.artifact.resolver.ResolutionListener;
import org.apache.maven.artifact.resolver.ResolutionNode;
+import org.apache.maven.artifact.resolver.conflict.ConflictResolver;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
@@ -44,32 +45,41 @@ import org.apache.maven.artifact.version
public class GraphArtifactCollector implements ArtifactCollector {
public ArtifactResolutionResult collect(
- Set artifacts,
+ Set<Artifact> artifacts,
Artifact originatingArtifact,
ArtifactRepository localRepository,
- List remoteRepositories,
+ List<ArtifactRepository> remoteRepositories,
ArtifactMetadataSource source,
ArtifactFilter filter,
- List listeners) throws ArtifactResolutionException {
+ List<ResolutionListener> listeners) {
return collect(artifacts, originatingArtifact, Collections.EMPTY_MAP,
localRepository, remoteRepositories, source, filter,
listeners);
}
public ArtifactResolutionResult collect(
- Set artifacts,
+ Set<Artifact> artifacts,
Artifact originatingArtifact,
Map managedVersions,
ArtifactRepository localRepository,
- List remoteRepositories,
+ List<ArtifactRepository> remoteRepositories,
ArtifactMetadataSource source,
ArtifactFilter filter,
- List listeners) throws ArtifactResolutionException {
+ List<ResolutionListener> listeners) {
Map resolvedArtifacts = new HashMap();
ResolutionNode root = new ResolutionNode(originatingArtifact,
remoteRepositories);
- root.addDependencies(artifacts, remoteRepositories, filter);
- recurse(root, resolvedArtifacts, managedVersions, localRepository,
- remoteRepositories, source, filter, listeners);
+ try {
+ root.addDependencies(artifacts, remoteRepositories, filter);
+ recurse(root, resolvedArtifacts, managedVersions, localRepository,
+ remoteRepositories, source, filter, listeners);
+ } catch (CyclicDependencyException e) {
+ e.printStackTrace();
+ } catch (OverConstrainedVersionException e) {
+ e.printStackTrace();
+ } catch (ArtifactResolutionException e) {
+ e.printStackTrace();
+ }
+
Set set = new HashSet();
for (Iterator i = resolvedArtifacts.values().iterator(); i.hasNext();)
{
@@ -77,13 +87,17 @@ public class GraphArtifactCollector impl
for (Iterator j = nodes.iterator(); j.hasNext();) {
ResolutionNode node = (ResolutionNode) j.next();
Artifact artifact = node.getArtifact();
- if (!node.equals(root) && node.isActive() &&
node.filterTrail(filter)
- // If it was optional and not a direct dependency,
- // we don't add it or its children, just allow the
- // update of the version and scope
- && (node.isChildOfRootNode() ||
!artifact.isOptional())) {
- artifact.setDependencyTrail(node.getDependencyTrail());
- set.add(node);
+ try {
+ if (!node.equals(root) && node.isActive() &&
node.filterTrail(filter)
+ // If it was optional and not a direct dependency,
+ // we don't add it or its children, just allow the
+ // update of the version and scope
+ && (node.isChildOfRootNode() ||
!artifact.isOptional())) {
+ artifact.setDependencyTrail(node.getDependencyTrail());
+ set.add(node);
+ }
+ } catch (OverConstrainedVersionException e) {
+ e.printStackTrace();
}
}
}
@@ -429,4 +443,16 @@ public class GraphArtifactCollector impl
}
}
}
+
+ public ArtifactResolutionResult collect(Set<Artifact> artifacts, Artifact
originatingArtifact,
+ Map managedVersions,
ArtifactRepository localRepository,
+ List<ArtifactRepository>
remoteRepositories,
+ ArtifactMetadataSource source,
ArtifactFilter filter,
+ List<ResolutionListener> listeners,
+ List<ConflictResolver>
conflictResolvers)
+ throws ArtifactResolutionException {
+
+ return null;
+ }
+
}
Modified:
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MojoSupport.java
URL:
http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MojoSupport.java?rev=1484684&r1=1484683&r2=1484684&view=diff
==============================================================================
---
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MojoSupport.java
(original)
+++
karaf/branches/karaf-2.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MojoSupport.java
Tue May 21 07:55:46 2013
@@ -38,8 +38,10 @@ import org.apache.maven.artifact.reposit
import org.apache.maven.artifact.resolver.ArtifactCollector;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.ResolutionListener;
import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.plugin.AbstractMojo;
@@ -48,6 +50,7 @@ import org.apache.maven.project.MavenPro
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.MavenProjectHelper;
import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.settings.Proxy;
public abstract class MojoSupport extends AbstractMojo {
@@ -113,6 +116,15 @@ public abstract class MojoSupport extend
* @parameter default-value="xml"
*/
private String featureArtifactType = "xml";
+
+ /**
+ * The Maven session.
+ *
+ * @parameter expression="${session}"
+ * @readonly
+ * @required
+ */
+ protected MavenSession mavenSession;
protected MavenProject getProject() {
return project;
@@ -212,14 +224,14 @@ public abstract class MojoSupport extend
"An error occurred while resolving project dependencies.",
e);
}
- ResolutionListenerImpl listener = new ResolutionListenerImpl();
- listener.setLog(getLog());
+ ResolutionListener listener = new ResolutionListenerImpl();
+ ((ResolutionListenerImpl)listener).setLog(getLog());
try {
collector.collect(project.getDependencyArtifacts(), project
.getArtifact(), managedVersions, localRepo, remoteRepos,
artifactMetadataSource, null, Collections
.singletonList(listener));
- } catch (ArtifactResolutionException e) {
+ } catch (Exception e) {
getLog().error(
"An error occurred while resolving project dependencies.",
e);
@@ -227,10 +239,10 @@ public abstract class MojoSupport extend
if (getLog().isDebugEnabled()) {
getLog().debug("Dependency graph");
getLog().debug("================");
- print(listener.getRootNode());
+ print(((ResolutionListenerImpl)listener).getRootNode());
getLog().debug("================");
}
- return listener;
+ return (ResolutionListenerImpl)listener;
}
protected Map createManagedVersionMap(String projectId,
@@ -255,7 +267,7 @@ public abstract class MojoSupport extend
"Unable to parse version '" + d.getVersion()
+ "' for dependency '"
+ d.getManagementKey() + "': "
- + e.getMessage(), e);
+ + e.getMessage());
}
}
} else {
@@ -409,6 +421,10 @@ public abstract class MojoSupport extend
repoUrl,
repoUrl,
new DefaultRepositoryLayout());
+ org.apache.maven.repository.Proxy mavenProxy =
configureProxyToInlineRepo();
+ if (mavenProxy != null) {
+ repo.setProxy(mavenProxy);
+ }
resourceLocation = resourceLocation.substring(repoDelimIntex + 1);
}
@@ -444,4 +460,25 @@ public abstract class MojoSupport extend
artifact.setRepository(repo);
return artifact;
}
+
+ private org.apache.maven.repository.Proxy configureProxyToInlineRepo() {
+ if (mavenSession != null && mavenSession.getSettings() != null) {
+ Proxy proxy = mavenSession.getSettings().getActiveProxy();
+ org.apache.maven.repository.Proxy mavenProxy = new
org.apache.maven.repository.Proxy();
+ if (proxy != null) {
+ mavenProxy.setProtocol(proxy.getProtocol());
+ mavenProxy.setHost(proxy.getHost());
+ mavenProxy.setPort(proxy.getPort());
+ mavenProxy.setNonProxyHosts(proxy.getNonProxyHosts());
+ mavenProxy.setUserName(proxy.getUsername());
+ mavenProxy.setPassword(proxy.getPassword());
+ return mavenProxy;
+ } else {
+ return null;
+ }
+
+ } else {
+ return null;
+ }
+ }
}