mirror of https://github.com/apache/archiva.git
Adding ProjectModel300Reader tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@582026 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
13e64dfc3d
commit
4b9cf4b929
|
@ -19,11 +19,28 @@ package org.apache.maven.archiva.repository.project.readers;
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
||||||
|
import org.apache.maven.archiva.model.ArtifactReference;
|
||||||
|
import org.apache.maven.archiva.model.Dependency;
|
||||||
|
import org.apache.maven.archiva.model.Individual;
|
||||||
|
import org.apache.maven.archiva.model.IssueManagement;
|
||||||
|
import org.apache.maven.archiva.model.License;
|
||||||
|
import org.apache.maven.archiva.model.MailingList;
|
||||||
|
import org.apache.maven.archiva.model.Organization;
|
||||||
|
import org.apache.maven.archiva.model.ProjectRepository;
|
||||||
|
import org.apache.maven.archiva.model.Scm;
|
||||||
import org.apache.maven.archiva.repository.project.ProjectModelException;
|
import org.apache.maven.archiva.repository.project.ProjectModelException;
|
||||||
import org.apache.maven.archiva.repository.project.ProjectModelReader;
|
import org.apache.maven.archiva.repository.project.ProjectModelReader;
|
||||||
|
import org.apache.maven.archiva.xml.XMLException;
|
||||||
|
import org.apache.maven.archiva.xml.XMLReader;
|
||||||
|
import org.dom4j.Element;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ProjectModel300Reader
|
* ProjectModel300Reader
|
||||||
|
@ -35,14 +52,372 @@ import java.io.File;
|
||||||
* role="org.apache.maven.archiva.repository.project.ProjectModelReader"
|
* role="org.apache.maven.archiva.repository.project.ProjectModelReader"
|
||||||
* role-hint="model300"
|
* role-hint="model300"
|
||||||
*/
|
*/
|
||||||
public class ProjectModel300Reader implements ProjectModelReader
|
public class ProjectModel300Reader
|
||||||
|
implements ProjectModelReader
|
||||||
{
|
{
|
||||||
|
|
||||||
public ArchivaProjectModel read( File pomFile )
|
public ArchivaProjectModel read( File pomFile )
|
||||||
throws ProjectModelException
|
throws ProjectModelException
|
||||||
{
|
{
|
||||||
// TODO Auto-generated method stub
|
try
|
||||||
|
{
|
||||||
|
XMLReader xml = new XMLReader( "project", pomFile );
|
||||||
|
|
||||||
|
ArchivaProjectModel model = new ArchivaProjectModel();
|
||||||
|
|
||||||
|
xml.removeNamespaces();
|
||||||
|
|
||||||
|
Element project = xml.getElement( "//project" );
|
||||||
|
|
||||||
|
// TODO: Handle <extend /> ?? (is this even possible?)
|
||||||
|
|
||||||
|
model.setGroupId( project.elementTextTrim( "groupId" ) );
|
||||||
|
model.setArtifactId( project.elementTextTrim( "artifactId" ) );
|
||||||
|
// TODO: Handle <id />
|
||||||
|
model.setVersion( project.elementTextTrim( "currentVersion" ) );
|
||||||
|
model.setName( project.elementTextTrim( "name" ) );
|
||||||
|
model.setDescription( project.elementTextTrim( "description" ) );
|
||||||
|
// TODO: what to do with <shortDescription /> ?
|
||||||
|
model.setUrl( project.elementTextTrim( "url" ) );
|
||||||
|
// TODO: Handle <logo />
|
||||||
|
// TODO: Handle <inceptionYear />
|
||||||
|
|
||||||
|
model.setIssueManagement( getIssueManagement( xml ) );
|
||||||
|
// TODO: What to do with <gumpRepositoryId /> ?
|
||||||
|
// TODO: Handle <siteAddress />
|
||||||
|
// TODO: Handle <siteDirectory /> ?
|
||||||
|
// TODO: Handle <distributionSite />
|
||||||
|
// TODO: Handle <distributionDirectory />
|
||||||
|
model.setMailingLists( getMailingLists( xml ) );
|
||||||
|
model.setIndividuals( getIndividuals( xml ) );
|
||||||
|
model.setLicenses( getLicenses( xml ) );
|
||||||
|
model.setReports( getReports( xml ) );
|
||||||
|
model.setRepositories( getRepositories( xml ) );
|
||||||
|
model.setScm( getSCM( xml ) );
|
||||||
|
model.setOrganization( getOrganization( xml ) );
|
||||||
|
model.setProperties( getProperties( xml.getElement( "//project/properties" ) ) );
|
||||||
|
model.setDependencies( getDependencies( xml ) );
|
||||||
|
|
||||||
|
/* Following are not valid for <pomVersion>3</pomVersion> / Maven 1 pom files.
|
||||||
|
*
|
||||||
|
* model.setDependencyManagement()
|
||||||
|
* model.setPlugins()
|
||||||
|
* model.setParentProject()
|
||||||
|
* model.setPackaging()
|
||||||
|
* model.setCiManagement()
|
||||||
|
* model.setBuildExtensions()
|
||||||
|
* model.setRelocation()
|
||||||
|
*/
|
||||||
|
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
catch ( XMLException e )
|
||||||
|
{
|
||||||
|
throw new ProjectModelException( e.getMessage(), e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArtifactReference getArtifactReference( Element elemPlugin, String defaultType )
|
||||||
|
{
|
||||||
|
ArtifactReference reference = new ArtifactReference();
|
||||||
|
|
||||||
|
reference.setGroupId( StringUtils.defaultString( elemPlugin.elementTextTrim( "groupId" ) ) );
|
||||||
|
reference.setArtifactId( elemPlugin.elementTextTrim( "artifactId" ) );
|
||||||
|
reference.setVersion( StringUtils.defaultString( elemPlugin.elementTextTrim( "version" ) ) );
|
||||||
|
reference.setClassifier( StringUtils.defaultString( elemPlugin.elementTextTrim( "classifier" ) ) );
|
||||||
|
reference.setType( StringUtils.defaultIfEmpty( elemPlugin.elementTextTrim( "type" ), defaultType ) );
|
||||||
|
|
||||||
|
return reference;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get List of {@link ArtifactReference} objects from xpath expr.
|
||||||
|
*/
|
||||||
|
private List<ArtifactReference> getArtifactReferenceList( XMLReader xml, String xpathExpr, String defaultType )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<ArtifactReference> refs = new ArrayList<ArtifactReference>();
|
||||||
|
|
||||||
|
Iterator<Element> it = xml.getElementList( xpathExpr ).iterator();
|
||||||
|
while ( it.hasNext() )
|
||||||
|
{
|
||||||
|
Element elemPlugin = it.next();
|
||||||
|
|
||||||
|
refs.add( getArtifactReference( elemPlugin, defaultType ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
return refs;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Dependency> getDependencies( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
return getDependencyList( xml, new String[] { "dependencies" } );
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Dependency> getDependencyList( XMLReader xml, String parts[] )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<Dependency> dependencyList = new ArrayList<Dependency>();
|
||||||
|
|
||||||
|
Element project = xml.getElement( "//project" );
|
||||||
|
|
||||||
|
Element depsParent = project;
|
||||||
|
|
||||||
|
for ( String part : parts )
|
||||||
|
{
|
||||||
|
depsParent = depsParent.element( part );
|
||||||
|
if ( depsParent == null )
|
||||||
|
{
|
||||||
|
return dependencyList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Iterator<Element> it = depsParent.elementIterator( "dependency" );
|
||||||
|
while ( it.hasNext() )
|
||||||
|
{
|
||||||
|
Element elemDependency = it.next();
|
||||||
|
Dependency dependency = new Dependency();
|
||||||
|
|
||||||
|
dependency.setGroupId( elemDependency.elementTextTrim( "groupId" ) );
|
||||||
|
dependency.setArtifactId( elemDependency.elementTextTrim( "artifactId" ) );
|
||||||
|
dependency.setVersion( elemDependency.elementTextTrim( "version" ) );
|
||||||
|
|
||||||
|
dependency.setType( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "type" ), "jar" ) );
|
||||||
|
dependency.setUrl( elemDependency.elementTextTrim( "url" ) );
|
||||||
|
/* Following are not valid for <pomVersion>3</pomVersion> / Maven 1 pom files.
|
||||||
|
*
|
||||||
|
* dependency.setClassifier( StringUtils.defaultString( elemDependency.elementTextTrim( "classifier" ) ) );
|
||||||
|
* dependency.setScope( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "scope" ), "compile" ) );
|
||||||
|
* dependency.setOptional( toBoolean( elemDependency.elementTextTrim( "optional" ), false ) );
|
||||||
|
*/
|
||||||
|
|
||||||
|
dependency.setSystemPath( elemDependency.elementTextTrim( "jar" ) );
|
||||||
|
|
||||||
|
if ( dependencyList.contains( dependency ) )
|
||||||
|
{
|
||||||
|
// TODO: throw into monitor as "duplicate dependency" issue.
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencyList.add( dependency );
|
||||||
|
}
|
||||||
|
|
||||||
|
return dependencyList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Individual> getIndividuals( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<Individual> individuals = new ArrayList<Individual>();
|
||||||
|
|
||||||
|
individuals.addAll( getIndividuals( xml, true, "//project/developers/developer" ) );
|
||||||
|
individuals.addAll( getIndividuals( xml, false, "//project/contributors/contributor" ) );
|
||||||
|
|
||||||
|
return individuals;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Individual> getIndividuals( XMLReader xml, boolean isCommitor, String xpathExpr )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<Individual> ret = new ArrayList<Individual>();
|
||||||
|
|
||||||
|
List<Element> modelPersonList = xml.getElementList( xpathExpr );
|
||||||
|
|
||||||
|
Iterator<Element> iter = modelPersonList.iterator();
|
||||||
|
while ( iter.hasNext() )
|
||||||
|
{
|
||||||
|
Element elemPerson = iter.next();
|
||||||
|
Individual individual = new Individual();
|
||||||
|
|
||||||
|
if ( isCommitor )
|
||||||
|
{
|
||||||
|
individual.setPrincipal( elemPerson.elementTextTrim( "id" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
individual.setCommitor( isCommitor );
|
||||||
|
individual.setEmail( elemPerson.elementTextTrim( "email" ) );
|
||||||
|
individual.setName( elemPerson.elementTextTrim( "name" ) );
|
||||||
|
individual.setOrganization( elemPerson.elementTextTrim( "organization" ) );
|
||||||
|
individual.setOrganizationUrl( elemPerson.elementTextTrim( "organizationUrl" ) );
|
||||||
|
individual.setUrl( elemPerson.elementTextTrim( "url" ) );
|
||||||
|
individual.setTimezone( elemPerson.elementTextTrim( "timezone" ) );
|
||||||
|
|
||||||
|
// Roles
|
||||||
|
Element elemRoles = elemPerson.element( "roles" );
|
||||||
|
if ( elemRoles != null )
|
||||||
|
{
|
||||||
|
List<Element> roleNames = elemRoles.elements( "role" );
|
||||||
|
Iterator<Element> itRole = roleNames.iterator();
|
||||||
|
while ( itRole.hasNext() )
|
||||||
|
{
|
||||||
|
Element role = itRole.next();
|
||||||
|
individual.addRole( role.getTextTrim() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Properties
|
||||||
|
individual.setProperties( getProperties( elemPerson.element( "properties" ) ) );
|
||||||
|
|
||||||
|
ret.add( individual );
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IssueManagement getIssueManagement( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
Element issueTrackingUrlElem = xml.getElement( "//project/issueTrackingUrl" );
|
||||||
|
|
||||||
|
if ( issueTrackingUrlElem == null )
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String issueTrackingUrl = issueTrackingUrlElem.getTextTrim();
|
||||||
|
if ( StringUtils.isBlank( issueTrackingUrl ) )
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
IssueManagement issueMgmt = new IssueManagement();
|
||||||
|
issueMgmt.setUrl( issueTrackingUrl );
|
||||||
|
|
||||||
|
return issueMgmt;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<License> getLicenses( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<License> licenses = new ArrayList<License>();
|
||||||
|
|
||||||
|
Element elemLicenses = xml.getElement( "//project/licenses" );
|
||||||
|
|
||||||
|
if ( elemLicenses != null )
|
||||||
|
{
|
||||||
|
List<Element> licenseList = elemLicenses.elements( "license" );
|
||||||
|
for ( Element elemLicense : licenseList )
|
||||||
|
{
|
||||||
|
License license = new License();
|
||||||
|
|
||||||
|
// TODO: Create LicenseIdentity class to managed license ids.
|
||||||
|
// license.setId( elemLicense.elementTextTrim("id") );
|
||||||
|
license.setName( elemLicense.elementTextTrim( "name" ) );
|
||||||
|
license.setUrl( elemLicense.elementTextTrim( "url" ) );
|
||||||
|
license.setComments( elemLicense.elementTextTrim( "comments" ) );
|
||||||
|
|
||||||
|
licenses.add( license );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return licenses;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MailingList> getMailingLists( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<MailingList> mailingLists = new ArrayList<MailingList>();
|
||||||
|
|
||||||
|
List<Element> mailingListElems = xml.getElementList( "//project/mailingLists/mailingList" );
|
||||||
|
for ( Element elemMailingList : mailingListElems )
|
||||||
|
{
|
||||||
|
MailingList mlist = new MailingList();
|
||||||
|
|
||||||
|
mlist.setName( elemMailingList.elementTextTrim( "name" ) );
|
||||||
|
mlist.setSubscribeAddress( elemMailingList.elementTextTrim( "subscribe" ) );
|
||||||
|
mlist.setUnsubscribeAddress( elemMailingList.elementTextTrim( "unsubscribe" ) );
|
||||||
|
mlist.setPostAddress( elemMailingList.elementTextTrim( "post" ) );
|
||||||
|
mlist.setMainArchiveUrl( elemMailingList.elementTextTrim( "archive" ) );
|
||||||
|
|
||||||
|
Element elemOtherArchives = elemMailingList.element( "otherArchives" );
|
||||||
|
if ( elemOtherArchives != null )
|
||||||
|
{
|
||||||
|
List<String> otherArchives = new ArrayList<String>();
|
||||||
|
List<Element> others = elemOtherArchives.elements( "otherArchive" );
|
||||||
|
for ( Element other : others )
|
||||||
|
{
|
||||||
|
String otherArchive = other.getTextTrim();
|
||||||
|
otherArchives.add( otherArchive );
|
||||||
|
}
|
||||||
|
|
||||||
|
mlist.setOtherArchives( otherArchives );
|
||||||
|
}
|
||||||
|
|
||||||
|
mailingLists.add( mlist );
|
||||||
|
}
|
||||||
|
|
||||||
|
return mailingLists;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Organization getOrganization( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
Element elemOrg = xml.getElement( "//project/organization" );
|
||||||
|
if ( elemOrg != null )
|
||||||
|
{
|
||||||
|
Organization org = new Organization();
|
||||||
|
|
||||||
|
org.setName( elemOrg.elementTextTrim( "name" ) );
|
||||||
|
org.setUrl( elemOrg.elementTextTrim( "url" ) );
|
||||||
|
// TODO: Handle <logo />
|
||||||
|
|
||||||
|
return org;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Properties getProperties( Element elemProperties )
|
||||||
|
{
|
||||||
|
if ( elemProperties == null )
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Properties ret = new Properties();
|
||||||
|
|
||||||
|
Iterator<Element> itProps = elemProperties.elements().iterator();
|
||||||
|
while ( itProps.hasNext() )
|
||||||
|
{
|
||||||
|
Element elemProp = (Element) itProps.next();
|
||||||
|
ret.setProperty( elemProp.getName(), elemProp.getText() );
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ArtifactReference> getReports( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
return getArtifactReferenceList( xml, "//project/reports/plugins/plugin", "maven-plugin" );
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ProjectRepository> getRepositories( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
List<ProjectRepository> repos = new ArrayList<ProjectRepository>();
|
||||||
|
|
||||||
|
// Repositories are not stored within the maven 1 pom.
|
||||||
|
|
||||||
|
return repos;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Scm getSCM( XMLReader xml )
|
||||||
|
throws XMLException
|
||||||
|
{
|
||||||
|
Element elemScm = xml.getElement( "//project/repository" );
|
||||||
|
|
||||||
|
if ( elemScm != null )
|
||||||
|
{
|
||||||
|
Scm scm = new Scm();
|
||||||
|
|
||||||
|
scm.setConnection( elemScm.elementTextTrim( "connection" ) );
|
||||||
|
scm.setDeveloperConnection( elemScm.elementTextTrim( "developerConnection" ) );
|
||||||
|
scm.setUrl( elemScm.elementTextTrim( "url" ) );
|
||||||
|
|
||||||
|
return scm;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,7 +218,7 @@ public class ProjectModel400Reader
|
||||||
|
|
||||||
if ( dependencyList.contains( dependency ) )
|
if ( dependencyList.contains( dependency ) )
|
||||||
{
|
{
|
||||||
// TODO: throw into monitor as issue.
|
// TODO: throw into monitor as "duplicate dependency" issue.
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyList.add( dependency );
|
dependencyList.add( dependency );
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
package org.apache.maven.archiva.repository.project.readers;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 org.apache.maven.archiva.model.ArchivaProjectModel;
|
||||||
|
import org.apache.maven.archiva.model.Dependency;
|
||||||
|
import org.apache.maven.archiva.repository.project.ProjectModelException;
|
||||||
|
import org.apache.maven.archiva.repository.project.ProjectModelReader;
|
||||||
|
import org.codehaus.plexus.PlexusTestCase;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ProjectModel300ReaderTest
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class ProjectModel300ReaderTest
|
||||||
|
extends PlexusTestCase
|
||||||
|
{
|
||||||
|
public void testLoadSimple()
|
||||||
|
throws ProjectModelException
|
||||||
|
{
|
||||||
|
File defaultRepoDir = new File( getBasedir(), "src/test/repositories/legacy-repository" );
|
||||||
|
File pomFile = new File( defaultRepoDir, "org.apache.maven/poms/maven-model-v3-2.0.pom" );
|
||||||
|
|
||||||
|
ProjectModelReader reader = new ProjectModel300Reader();
|
||||||
|
|
||||||
|
ArchivaProjectModel project = reader.read( pomFile );
|
||||||
|
|
||||||
|
assertNotNull( project );
|
||||||
|
assertEquals( "Group Id", "org.apache.maven", project.getGroupId() );
|
||||||
|
assertEquals( "Artifact Id", "maven-model-v3", project.getArtifactId() );
|
||||||
|
assertEquals( "Version", "2.0", project.getVersion() );
|
||||||
|
assertEquals( "Name", "Maven Model v3", project.getName() );
|
||||||
|
assertEquals( "Description", "Maven Model v3", project.getDescription() );
|
||||||
|
|
||||||
|
assertNull( "Has no parent project.", project.getParentProject() );
|
||||||
|
|
||||||
|
assertNotNull( "Dependencies", project.getDependencies() );
|
||||||
|
assertEquals( "Dependencies.size", 1, project.getDependencies().size() );
|
||||||
|
|
||||||
|
Dependency dep = (Dependency) project.getDependencies().get( 0 );
|
||||||
|
assertNotNull( dep );
|
||||||
|
assertEquals( "dep.groupId", "org.codehaus.plexus", dep.getGroupId() );
|
||||||
|
assertEquals( "dep.artifactId", "plexus-utils", dep.getArtifactId() );
|
||||||
|
assertEquals( "dep.version", "1.0.4", dep.getVersion() );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
<project>
|
||||||
|
<pomVersion>3</pomVersion>
|
||||||
|
<groupId>org.apache.maven</groupId>
|
||||||
|
<artifactId>maven-model-v3</artifactId>
|
||||||
|
<name>Maven Model v3</name>
|
||||||
|
<currentVersion>2.0</currentVersion>
|
||||||
|
<description>Maven Model v3</description>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.codehaus.plexus</groupId>
|
||||||
|
<artifactId>plexus-utils</artifactId>
|
||||||
|
<version>1.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
Loading…
Reference in New Issue