package org.apache.maven.shared.artifact.filter.resolve.transform; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import java.util.ArrayList; import java.util.List; import org.apache.maven.shared.artifact.filter.resolve.Node; import org.eclipse.aether.artifact.ArtifactProperties; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.graph.Exclusion; /** * Adapter of an Eclipse Aether DependencyNode for common Node * * @author Robert Scholte * @since 3.0 */ class EclipseAetherNode implements Node { private final DependencyNode node; EclipseAetherNode( DependencyNode node ) { this.node = node; } @Override public org.apache.maven.model.Dependency getDependency() { Dependency nodeDependency = node.getDependency(); if ( nodeDependency == null ) { return null; } org.apache.maven.model.Dependency mavenDependency = new org.apache.maven.model.Dependency(); mavenDependency.setGroupId( nodeDependency.getArtifact().getGroupId() ); mavenDependency.setArtifactId( nodeDependency.getArtifact().getArtifactId() ); mavenDependency.setVersion( nodeDependency.getArtifact().getVersion() ); mavenDependency.setClassifier( nodeDependency.getArtifact().getClassifier() ); mavenDependency.setType( nodeDependency.getArtifact().getProperty( ArtifactProperties.TYPE, null ) ); mavenDependency.setScope( nodeDependency.getScope() ); // Eclipse Aether supports three-valued logic if ( nodeDependency.getOptional() != null ) { mavenDependency.setOptional( nodeDependency.isOptional() ); } if ( nodeDependency.getExclusions() != null ) { List<org.apache.maven.model.Exclusion> mavenExclusions = new ArrayList<org.apache.maven.model.Exclusion>( nodeDependency.getExclusions().size() ); for ( Exclusion aetherExclusion : nodeDependency.getExclusions() ) { org.apache.maven.model.Exclusion mavenExclusion = new org.apache.maven.model.Exclusion(); mavenExclusion.setGroupId( aetherExclusion.getGroupId() ); mavenExclusion.setArtifactId( aetherExclusion.getArtifactId() ); // that's all folks, although Aether has more metadata mavenExclusions.add( mavenExclusion ); } mavenDependency.setExclusions( mavenExclusions ); } return mavenDependency; } }