mirror of https://github.com/apache/maven.git
Cleaned up rules. Removed mercury dependencies.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@747378 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ceaa949f1e
commit
04475b691b
maven-project-builder/src/main/java/org/apache/maven/project/builder
DataSourceRule.javaJoinRule.javaPomClassicDomainModel.javaPomTransformer.java
rules
DefaultExecutionIdTransformerRule.javaDependencyManagementDataSourceRule.javaDependencyRule.javaDuplicateFiltersTransformerRule.javaMissingGroupIdTransformerRule.javaNameNotInheritedTransformerRule.javaNotInheritedPluginExecutionTransformerRule.javaNotInheritedPluginTransformerRule.javaOverideConfigTransformerRule.javaPackagingNotInheritedTransformerRule.javaRelativePathNotInheritedTransformerRule.java
maven-project
|
@ -0,0 +1,9 @@
|
|||
package org.apache.maven.project.builder;
|
||||
|
||||
import org.apache.maven.shared.model.ModelDataSource;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
|
||||
public interface DataSourceRule
|
||||
{
|
||||
void execute(ModelDataSource dataSource) throws DataSourceException;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package org.apache.maven.project.builder;
|
||||
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface JoinRule
|
||||
{
|
||||
List<ModelProperty> execute(List<ModelProperty> modelProperties) throws DataSourceException;
|
||||
}
|
|
@ -68,7 +68,6 @@ public class PomClassicDomainModel implements InputStreamDomainModel
|
|||
public PomClassicDomainModel( List<ModelProperty> modelProperties )
|
||||
{
|
||||
this.modelProperties = modelProperties;
|
||||
|
||||
try {
|
||||
inputBytes = IOUtil.toByteArray( ModelMarshaller.unmarshalModelPropertiesToXml(modelProperties, ProjectUri.baseUri));
|
||||
} catch (IOException e) {
|
||||
|
@ -129,8 +128,6 @@ public class PomClassicDomainModel implements InputStreamDomainModel
|
|||
parentRelativePath = mp.getResolvedValue();
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(groupId != null && artifactId != null && version != null && parentGroupId != null &&
|
||||
parentArtifactId != null && parentVersion != null & parentRelativePath != null)
|
||||
{
|
||||
|
@ -339,6 +336,17 @@ public class PomClassicDomainModel implements InputStreamDomainModel
|
|||
this.lineageCount = lineageCount;
|
||||
}
|
||||
|
||||
public PomClassicDomainModel createCopy()
|
||||
{
|
||||
List<ModelProperty> props = new ArrayList<ModelProperty>();
|
||||
for(ModelProperty mp : modelProperties)
|
||||
{
|
||||
props.add(mp.createCopyOfOriginal());
|
||||
}
|
||||
|
||||
return new PomClassicDomainModel(props);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this.asString.equals(o.asString()), otherwise false.
|
||||
*
|
||||
|
|
|
@ -168,59 +168,32 @@ public class PomTransformer
|
|||
|
||||
List<ModelProperty> props = new ArrayList<ModelProperty>( properties );
|
||||
|
||||
//dependency management
|
||||
|
||||
ModelDataSource source = new DefaultModelDataSource( props, PomTransformer.MODEL_CONTAINER_FACTORIES );
|
||||
|
||||
for ( ModelContainer dependencyContainer : source.queryFor( ProjectUri.Dependencies.Dependency.xUri ) )
|
||||
{
|
||||
for ( ModelContainer managementContainer : source.queryFor(
|
||||
ProjectUri.DependencyManagement.Dependencies.Dependency.xUri ) )
|
||||
{
|
||||
//Join Duplicate Exclusions TransformerRule (MNG-4010)
|
||||
ModelDataSource exclusionSource = new DefaultModelDataSource(managementContainer.getProperties(),
|
||||
Collections.unmodifiableList(Arrays.asList(new ArtifactModelContainerFactory(ProjectUri.DependencyManagement.Dependencies.Dependency.Exclusions.Exclusion.xUri))));
|
||||
List<ModelContainer> exclusionContainers =
|
||||
exclusionSource.queryFor(ProjectUri.DependencyManagement.Dependencies.Dependency.Exclusions.Exclusion.xUri);
|
||||
|
||||
for(ModelContainer mc : exclusionContainers)
|
||||
{
|
||||
for(ModelContainer mc1 : exclusionContainers)
|
||||
{
|
||||
if(!mc.equals(mc1) && mc.containerAction(mc1).equals(ModelContainerAction.JOIN))
|
||||
{
|
||||
exclusionSource.joinWithOriginalOrder(mc1, mc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
managementContainer = new ArtifactModelContainerFactory().create(
|
||||
transformDependencyManagement( exclusionSource.getModelProperties() ) );
|
||||
ModelContainerAction action = dependencyContainer.containerAction( managementContainer );
|
||||
if ( action.equals( ModelContainerAction.JOIN ) || action.equals( ModelContainerAction.DELETE ) )
|
||||
{
|
||||
source.join( dependencyContainer, managementContainer );
|
||||
}
|
||||
}
|
||||
}
|
||||
//Dependency Management
|
||||
new DependencyManagementDataSourceRule().execute( source );
|
||||
|
||||
//Plugin Management
|
||||
List<ModelProperty> joinedContainers = new ArrayList<ModelProperty>();
|
||||
for ( ModelContainer pluginContainer : source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
for ( ModelContainer managementContainer : source.queryFor( ProjectUri.Build.PluginManagement.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
//Transform from plugin management to plugins
|
||||
List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
|
||||
for ( ModelProperty mp : managementContainer.getProperties() )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.Build.PluginManagement.xUri ) )
|
||||
{
|
||||
transformedProperties.add( new ModelProperty( mp.getUri().replace( ProjectUri.Build.PluginManagement.xUri, ProjectUri.Build.xUri ), mp.getResolvedValue() ) );
|
||||
transformedProperties.add( new ModelProperty( mp.getUri().replace( ProjectUri.Build.PluginManagement.xUri,
|
||||
ProjectUri.Build.xUri ), mp.getResolvedValue() ) );
|
||||
}
|
||||
}
|
||||
|
||||
managementContainer = new ArtifactModelContainerFactory().create( transformedProperties );
|
||||
|
||||
//Remove duplicate executions tags
|
||||
|
||||
boolean hasExecutionsTag = false;
|
||||
for ( ModelProperty mp : pluginContainer.getProperties() )
|
||||
{
|
||||
|
@ -454,25 +427,15 @@ public class PomTransformer
|
|||
return false;
|
||||
}
|
||||
|
||||
private static List<ModelProperty> transformDependencyManagement( List<ModelProperty> modelProperties )
|
||||
{
|
||||
List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.DependencyManagement.xUri ) )
|
||||
{
|
||||
transformedProperties.add( new ModelProperty(
|
||||
mp.getUri().replace( ProjectUri.DependencyManagement.xUri, ProjectUri.xUri ), mp.getResolvedValue() ) );
|
||||
}
|
||||
}
|
||||
return transformedProperties;
|
||||
}
|
||||
|
||||
|
||||
List<TransformerRule> transformerRules = Arrays.asList(new MissingVersionTransformerRule(),
|
||||
new DefaultDependencyScopeTransformerRule());
|
||||
new DefaultDependencyScopeTransformerRule(), new MissingGroupIdTransformerRule());
|
||||
|
||||
List<TransformerRemovalRule> transformerRemovalRules = Arrays.asList(new DefaultExecutionIdTransformerRule(),
|
||||
new ModulesNotInheritedTransformerRule());
|
||||
new ModulesNotInheritedTransformerRule(), new NotInheritedPluginExecutionTransformerRule(),
|
||||
new NotInheritedPluginTransformerRule(), new RelativePathNotInheritedTransformerRule(),
|
||||
new PackagingNotInheritedTransformerRule(), new NameNotInheritedTransformerRule());
|
||||
|
||||
/**
|
||||
* @see ModelTransformer#transformToModelProperties(java.util.List)
|
||||
|
@ -528,77 +491,6 @@ public class PomTransformer
|
|||
tmp.removeAll(rule.executeWithReturnPropertiesToRemove(tmp, domainModelIndex));
|
||||
}
|
||||
|
||||
|
||||
//Missing groupId, use parent one TransformerRule
|
||||
if ( getPropertyFor( ProjectUri.groupId, tmp ) == null )
|
||||
{
|
||||
ModelProperty parentGroupId = getPropertyFor( ProjectUri.Parent.groupId, tmp );
|
||||
if ( parentGroupId != null )
|
||||
{
|
||||
tmp.add( new ModelProperty( ProjectUri.groupId, parentGroupId.getResolvedValue() ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Not inherited plugin execution rule
|
||||
if ( domainModelIndex > 0 )
|
||||
{
|
||||
List<ModelProperty> removeProperties = new ArrayList<ModelProperty>();
|
||||
ModelDataSource source = new DefaultModelDataSource( tmp, Arrays.asList( new ArtifactModelContainerFactory(), new PluginExecutionIdModelContainerFactory() ));
|
||||
List<ModelContainer> containers =
|
||||
source.queryFor( ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri );
|
||||
for ( ModelContainer container : containers )
|
||||
{
|
||||
for ( ModelProperty mp : container.getProperties() )
|
||||
{
|
||||
if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.Executions.Execution.inherited ) &&
|
||||
mp.getResolvedValue() != null && mp.getResolvedValue().equals( "false" ) )
|
||||
{
|
||||
removeProperties.addAll( container.getProperties() );
|
||||
for ( int j = tmp.indexOf( mp ); j >= 0; j-- )
|
||||
{
|
||||
if ( tmp.get( j ).getUri().equals( ProjectUri.Build.Plugins.Plugin.Executions.xUri ) )
|
||||
{
|
||||
removeProperties.add( tmp.get( j ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
tmp.removeAll( removeProperties );
|
||||
}
|
||||
|
||||
//Not inherited plugin rule
|
||||
if ( domainModelIndex > 0 )
|
||||
{
|
||||
List<ModelProperty> removeProperties = new ArrayList<ModelProperty>();
|
||||
ModelDataSource source = new DefaultModelDataSource( tmp, PomTransformer.MODEL_CONTAINER_FACTORIES );
|
||||
List<ModelContainer> containers = source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri );
|
||||
for ( ModelContainer container : containers )
|
||||
{
|
||||
for ( ModelProperty mp : container.getProperties() )
|
||||
{
|
||||
if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.inherited ) && mp.getResolvedValue() != null &&
|
||||
mp.getResolvedValue().equals( "false" ) )
|
||||
{
|
||||
removeProperties.addAll( container.getProperties() );
|
||||
for ( int j = tmp.indexOf( mp ); j >= 0; j-- )
|
||||
{
|
||||
if ( tmp.get( j ).getUri().equals( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
removeProperties.add( tmp.get( j ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
tmp.removeAll( removeProperties );
|
||||
}
|
||||
|
||||
// Project URL TransformerRule
|
||||
adjustUrl( projectUrl, tmp, ProjectUri.url, projectNames );
|
||||
// Site TransformerRule
|
||||
|
@ -610,10 +502,7 @@ public class PomTransformer
|
|||
// SCM Developer TransformerRule
|
||||
adjustUrl( scmDeveloperUrl, tmp, ProjectUri.Scm.developerConnection, projectNames );
|
||||
|
||||
// Project Name TransformerRule: not inherited
|
||||
// Packaging TransformerRule: not inherited
|
||||
// Profiles TransformerRule: not inherited
|
||||
// Parent.relativePath TransformerRule: not inherited
|
||||
// Prerequisites TransformerRule: not inherited
|
||||
// DistributionManagent.Relocation TransformerRule: not inherited
|
||||
if ( domainModelIndex > 0 )
|
||||
|
@ -621,9 +510,7 @@ public class PomTransformer
|
|||
for ( ModelProperty mp : tmp )
|
||||
{
|
||||
String uri = mp.getUri();
|
||||
if ( uri.equals( ProjectUri.name ) || uri.equals( ProjectUri.packaging )
|
||||
|| uri.startsWith( ProjectUri.Profiles.xUri )
|
||||
|| uri.startsWith( ProjectUri.Parent.relativePath )
|
||||
if ( uri.startsWith( ProjectUri.Profiles.xUri )
|
||||
|| uri.startsWith( ProjectUri.Prerequisites.xUri )
|
||||
|| uri.startsWith( ProjectUri.DistributionManagement.Relocation.xUri ) )
|
||||
{
|
||||
|
@ -693,46 +580,10 @@ public class PomTransformer
|
|||
//Rules processed on collapsed pom
|
||||
|
||||
//TransformerRule: Remove duplicate filters
|
||||
List<ModelProperty> removedProperties = new ArrayList<ModelProperty>();
|
||||
List<String> filters = new ArrayList<String>();
|
||||
for(ModelProperty mp : modelProperties)
|
||||
{
|
||||
if(mp.getUri().equals(ProjectUri.Build.Filters.filter))
|
||||
{
|
||||
if(filters.contains(mp.getResolvedValue()))
|
||||
{
|
||||
removedProperties.add(mp);
|
||||
}
|
||||
else
|
||||
{
|
||||
filters.add(mp.getResolvedValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
modelProperties.removeAll(removedProperties);
|
||||
modelProperties.removeAll(new DuplicateFiltersTransformerRule().executeWithReturnPropertiesToRemove( modelProperties , 0));
|
||||
|
||||
//TransformerRule: Build plugin config overrides reporting plugin config
|
||||
ModelDataSource source = new DefaultModelDataSource( modelProperties, PomTransformer.MODEL_CONTAINER_FACTORIES );
|
||||
|
||||
List<ModelContainer> reportContainers = source.queryFor( ProjectUri.Reporting.Plugins.Plugin.xUri );
|
||||
for ( ModelContainer pluginContainer : source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
ModelContainer transformedReportContainer = new ArtifactModelContainerFactory().create(
|
||||
transformPlugin( pluginContainer.getProperties() ) );
|
||||
|
||||
for(ModelContainer reportContainer : reportContainers) {
|
||||
ModelContainerAction action = transformedReportContainer.containerAction( reportContainer );
|
||||
if ( action.equals( ModelContainerAction.JOIN ) )
|
||||
{
|
||||
source.join( transformedReportContainer, reportContainer );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modelProperties = source.getModelProperties();
|
||||
|
||||
return modelProperties;
|
||||
return new OverideConfigTransformerRule().execute( modelProperties );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1018,26 +869,6 @@ public class PomTransformer
|
|||
return null;
|
||||
}
|
||||
|
||||
private static List<ModelProperty> transformPlugin( List<ModelProperty> modelProperties )
|
||||
{
|
||||
List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.Build.Plugins.xUri ) )
|
||||
{ if(mp.getUri().startsWith(ProjectUri.Build.Plugins.Plugin.configuration)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.groupId)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.artifactId)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.version)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
transformedProperties.add( new ModelProperty(
|
||||
mp.getUri().replace( ProjectUri.Build.Plugins.xUri, ProjectUri.Reporting.Plugins.xUri ),
|
||||
mp.getResolvedValue() ) );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return transformedProperties;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@ import java.util.ArrayList;
|
|||
*/
|
||||
public class DefaultExecutionIdTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.DataSourceRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.project.builder.factories.ArtifactModelContainerFactory;
|
||||
import org.apache.maven.shared.model.*;
|
||||
import org.apache.maven.shared.model.impl.DefaultModelDataSource;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Transform Dependency Management section of pom into dependency section
|
||||
*/
|
||||
public class DependencyManagementDataSourceRule implements DataSourceRule
|
||||
{
|
||||
public void execute(ModelDataSource source) throws DataSourceException
|
||||
{
|
||||
for ( ModelContainer dependencyContainer : source.queryFor( ProjectUri.Dependencies.Dependency.xUri ) )
|
||||
{
|
||||
for ( ModelContainer managementContainer : source.queryFor(
|
||||
ProjectUri.DependencyManagement.Dependencies.Dependency.xUri ) )
|
||||
{
|
||||
//Join Duplicate Exclusions TransformerRule (MNG-4010)
|
||||
ModelDataSource exclusionSource = new DefaultModelDataSource(managementContainer.getProperties(),
|
||||
Collections.unmodifiableList(Arrays.asList(new ArtifactModelContainerFactory(ProjectUri.DependencyManagement.Dependencies.Dependency.Exclusions.Exclusion.xUri))));
|
||||
List<ModelContainer> exclusionContainers =
|
||||
exclusionSource.queryFor(ProjectUri.DependencyManagement.Dependencies.Dependency.Exclusions.Exclusion.xUri);
|
||||
|
||||
for(ModelContainer mc : exclusionContainers)
|
||||
{
|
||||
for(ModelContainer mc1 : exclusionContainers)
|
||||
{
|
||||
if(!mc.equals(mc1) && mc.containerAction(mc1).equals(ModelContainerAction.JOIN))
|
||||
{
|
||||
exclusionSource.joinWithOriginalOrder(mc1, mc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
managementContainer = new ArtifactModelContainerFactory().create(
|
||||
transformDependencyManagement( exclusionSource.getModelProperties() ) );
|
||||
ModelContainerAction action = dependencyContainer.containerAction( managementContainer );
|
||||
if ( action.equals( ModelContainerAction.JOIN ) || action.equals( ModelContainerAction.DELETE ) )
|
||||
{
|
||||
source.join( dependencyContainer, managementContainer );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static List<ModelProperty> transformDependencyManagement( List<ModelProperty> modelProperties )
|
||||
{
|
||||
List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.DependencyManagement.xUri ) )
|
||||
{
|
||||
transformedProperties.add( new ModelProperty(
|
||||
mp.getUri().replace( ProjectUri.DependencyManagement.xUri, ProjectUri.xUri ), mp.getResolvedValue() ) );
|
||||
}
|
||||
}
|
||||
return transformedProperties;
|
||||
}
|
||||
}
|
|
@ -8,7 +8,6 @@ import java.util.ArrayList;
|
|||
|
||||
public class DependencyRule implements ModelContainerRule {
|
||||
public List<ModelProperty> execute(List<ModelProperty> modelProperties) {
|
||||
System.out.println("EXECUTE------------------");
|
||||
List<ModelProperty> properties = new ArrayList<ModelProperty>(modelProperties);
|
||||
List<ModelProperty> goalProperties = new ArrayList<ModelProperty>();
|
||||
List<ModelProperty> processedProperties = new ArrayList<ModelProperty>();
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRemovalRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DuplicateFiltersTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
List<ModelProperty> removedProperties = new ArrayList<ModelProperty>();
|
||||
List<String> filters = new ArrayList<String>();
|
||||
for(ModelProperty mp : modelProperties)
|
||||
{
|
||||
if(mp.getUri().equals(ProjectUri.Build.Filters.filter))
|
||||
{
|
||||
if(filters.contains(mp.getResolvedValue()))
|
||||
{
|
||||
removedProperties.add(mp);
|
||||
}
|
||||
else
|
||||
{
|
||||
filters.add(mp.getResolvedValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
|
@ -1,15 +1,27 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
import static org.apache.maven.project.builder.PomTransformer.getPropertyFor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* If the groupId is missing, add it using the value of the parent groupId.
|
||||
*/
|
||||
public class MissingGroupIdTransformerRule implements TransformerRule
|
||||
{
|
||||
public void execute(List<ModelProperty> modelProperties, int domainIndex) throws DataSourceException
|
||||
{
|
||||
|
||||
if ( getPropertyFor( ProjectUri.groupId, modelProperties ) == null )
|
||||
{
|
||||
ModelProperty parentGroupId = getPropertyFor( ProjectUri.Parent.groupId, modelProperties );
|
||||
if ( parentGroupId != null )
|
||||
{
|
||||
modelProperties.add( new ModelProperty( ProjectUri.groupId, parentGroupId.getResolvedValue() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRemovalRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Do not inherit the name attribute of the pom
|
||||
*/
|
||||
public class NameNotInheritedTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
List<ModelProperty> removedProperties = new ArrayList<ModelProperty>();
|
||||
if ( domainIndex > 0 )
|
||||
{
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.name ) )
|
||||
{
|
||||
removedProperties.add( mp );
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
||||
}
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRemovalRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.project.builder.factories.ArtifactModelContainerFactory;
|
||||
import org.apache.maven.project.builder.factories.PluginExecutionIdModelContainerFactory;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
import org.apache.maven.shared.model.ModelDataSource;
|
||||
import org.apache.maven.shared.model.ModelContainer;
|
||||
import org.apache.maven.shared.model.impl.DefaultModelDataSource;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* If plugin execution inherited property is false, do not inherit the execution
|
||||
*/
|
||||
public class NotInheritedPluginExecutionTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
List<ModelProperty> removeProperties = new ArrayList<ModelProperty>();
|
||||
|
||||
if ( domainIndex > 0 )
|
||||
{
|
||||
ModelDataSource source = new DefaultModelDataSource( modelProperties, Arrays.asList(
|
||||
new ArtifactModelContainerFactory(), new PluginExecutionIdModelContainerFactory() ));
|
||||
List<ModelContainer> containers =
|
||||
source.queryFor( ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri );
|
||||
for ( ModelContainer container : containers )
|
||||
{
|
||||
for ( ModelProperty mp : container.getProperties() )
|
||||
{
|
||||
if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.Executions.Execution.inherited ) &&
|
||||
mp.getResolvedValue() != null && mp.getResolvedValue().equals( "false" ) )
|
||||
{
|
||||
removeProperties.addAll( container.getProperties() );
|
||||
for ( int j = modelProperties.indexOf( mp ); j >= 0; j-- )
|
||||
{
|
||||
if ( modelProperties.get( j ).getUri().equals( ProjectUri.Build.Plugins.Plugin.Executions.xUri ) )
|
||||
{
|
||||
removeProperties.add( modelProperties.get( j ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return removeProperties;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRemovalRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.project.builder.PomTransformer;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
import org.apache.maven.shared.model.ModelDataSource;
|
||||
import org.apache.maven.shared.model.ModelContainer;
|
||||
import org.apache.maven.shared.model.impl.DefaultModelDataSource;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* If plugin inherited element value is false, do not inherit the plugin.
|
||||
*/
|
||||
public class NotInheritedPluginTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
List<ModelProperty> removeProperties = new ArrayList<ModelProperty>();
|
||||
if ( domainIndex > 0 )
|
||||
{
|
||||
ModelDataSource source = new DefaultModelDataSource( modelProperties, PomTransformer.MODEL_CONTAINER_FACTORIES );
|
||||
List<ModelContainer> containers = source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri );
|
||||
for ( ModelContainer container : containers )
|
||||
{
|
||||
for ( ModelProperty mp : container.getProperties() )
|
||||
{
|
||||
if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.inherited ) && mp.getResolvedValue() != null &&
|
||||
mp.getResolvedValue().equals( "false" ) )
|
||||
{
|
||||
removeProperties.addAll( container.getProperties() );
|
||||
for ( int j = modelProperties.indexOf( mp ); j >= 0; j-- )
|
||||
{
|
||||
if ( modelProperties.get( j ).getUri().equals( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
removeProperties.add( modelProperties.get( j ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return removeProperties;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.project.builder.PomTransformer;
|
||||
import org.apache.maven.project.builder.JoinRule;
|
||||
import org.apache.maven.project.builder.factories.ArtifactModelContainerFactory;
|
||||
import org.apache.maven.shared.model.*;
|
||||
import org.apache.maven.shared.model.impl.DefaultModelDataSource;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class OverideConfigTransformerRule implements JoinRule
|
||||
{
|
||||
public List<ModelProperty> execute(List<ModelProperty> modelProperties) throws DataSourceException
|
||||
{
|
||||
ModelDataSource source = new DefaultModelDataSource( modelProperties, PomTransformer.MODEL_CONTAINER_FACTORIES );
|
||||
List<ModelContainer> reportContainers = source.queryFor( ProjectUri.Reporting.Plugins.Plugin.xUri );
|
||||
for ( ModelContainer pluginContainer : source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
ModelContainer transformedReportContainer = new ArtifactModelContainerFactory().create(
|
||||
transformPlugin( pluginContainer.getProperties() ) );
|
||||
|
||||
for(ModelContainer reportContainer : reportContainers) {
|
||||
ModelContainerAction action = transformedReportContainer.containerAction( reportContainer );
|
||||
if ( action.equals( ModelContainerAction.JOIN ) )
|
||||
{
|
||||
source.join( transformedReportContainer, reportContainer );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return source.getModelProperties();
|
||||
}
|
||||
|
||||
private static List<ModelProperty> transformPlugin( List<ModelProperty> modelProperties )
|
||||
{
|
||||
List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.Build.Plugins.xUri ) )
|
||||
{ if(mp.getUri().startsWith(ProjectUri.Build.Plugins.Plugin.configuration)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.groupId)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.artifactId)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.version)
|
||||
|| mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.xUri ) )
|
||||
{
|
||||
transformedProperties.add( new ModelProperty(
|
||||
mp.getUri().replace( ProjectUri.Build.Plugins.xUri, ProjectUri.Reporting.Plugins.xUri ),
|
||||
mp.getResolvedValue() ) );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return transformedProperties;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRemovalRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PackagingNotInheritedTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
List<ModelProperty> removedProperties = new ArrayList<ModelProperty>();
|
||||
if ( domainIndex > 0 )
|
||||
{
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.packaging ) )
|
||||
{
|
||||
removedProperties.add( mp );
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
||||
}
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package org.apache.maven.project.builder.rules;
|
||||
|
||||
import org.apache.maven.project.builder.TransformerRemovalRule;
|
||||
import org.apache.maven.project.builder.ProjectUri;
|
||||
import org.apache.maven.shared.model.ModelProperty;
|
||||
import org.apache.maven.shared.model.DataSourceException;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* The relativePath element is not inherited.
|
||||
*/
|
||||
public class RelativePathNotInheritedTransformerRule implements TransformerRemovalRule
|
||||
{
|
||||
public List<ModelProperty> executeWithReturnPropertiesToRemove(List<ModelProperty> modelProperties, int domainIndex)
|
||||
throws DataSourceException
|
||||
{
|
||||
List<ModelProperty> removedProperties = new ArrayList<ModelProperty>();
|
||||
if ( domainIndex > 0 )
|
||||
{
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.Parent.relativePath ) )
|
||||
{
|
||||
removedProperties.add( mp );
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
||||
}
|
||||
return removedProperties;
|
||||
}
|
||||
}
|
|
@ -68,10 +68,6 @@ under the License.
|
|||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-project-builder</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-mercury</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-jxpath</groupId>
|
||||
<artifactId>commons-jxpath</artifactId>
|
||||
|
|
|
@ -22,16 +22,8 @@ package org.apache.maven.project;
|
|||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import org.apache.maven.mercury.PomProcessor;
|
||||
import org.apache.maven.mercury.PomProcessorException;
|
||||
import org.apache.maven.mercury.MavenDomainModel;
|
||||
import org.apache.maven.mercury.MavenDomainModelFactory;
|
||||
import org.apache.maven.mercury.builder.api.MetadataReader;
|
||||
import org.apache.maven.mercury.builder.api.MetadataReaderException;
|
||||
import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.InvalidRepositoryException;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
import org.apache.maven.model.Model;
|
||||
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
|
||||
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
|
||||
|
@ -54,7 +46,7 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
|
|||
*/
|
||||
@Component(role = ProjectBuilder.class)
|
||||
public class DefaultProjectBuilder
|
||||
implements ProjectBuilder, PomProcessor, LogEnabled
|
||||
implements ProjectBuilder, LogEnabled
|
||||
{
|
||||
@Requirement
|
||||
private MavenRepositorySystem repositorySystem;
|
||||
|
@ -64,84 +56,6 @@ public class DefaultProjectBuilder
|
|||
|
||||
private Logger logger;
|
||||
|
||||
public List<ModelProperty> getRawPom(ArtifactBasicMetadata bmd, MetadataReader mdReader, Map system, Map user)
|
||||
throws MetadataReaderException, PomProcessorException {
|
||||
if ( bmd == null )
|
||||
{
|
||||
throw new IllegalArgumentException( "bmd: null" );
|
||||
}
|
||||
|
||||
if ( mdReader == null )
|
||||
{
|
||||
throw new IllegalArgumentException( "mdReader: null" );
|
||||
}
|
||||
|
||||
List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
|
||||
interpolatorProperties.add( new InterpolatorProperty( "${mavenVersion}", "3.0-SNAPSHOT",
|
||||
PomInterpolatorTag.EXECUTION_PROPERTIES.name() ) );
|
||||
|
||||
if ( system != null )
|
||||
{
|
||||
interpolatorProperties.addAll(
|
||||
InterpolatorProperty.toInterpolatorProperties( system, PomInterpolatorTag.EXECUTION_PROPERTIES.name() ) );
|
||||
}
|
||||
if ( user != null )
|
||||
{
|
||||
interpolatorProperties.addAll(
|
||||
InterpolatorProperty.toInterpolatorProperties( user, PomInterpolatorTag.USER_PROPERTIES.name() ) );
|
||||
}
|
||||
|
||||
List<DomainModel> domainModels = new ArrayList<DomainModel>();
|
||||
try
|
||||
{
|
||||
// MavenDomainModel superPom =
|
||||
// new MavenDomainModel(MavenDependencyProcessor.class.getResourceAsStream( "pom-4.0.0.xml" ));
|
||||
// domainModels.add(superPom);
|
||||
|
||||
byte[] superBytes = mdReader.readMetadata( bmd );
|
||||
|
||||
if ( superBytes == null || superBytes.length < 1 )
|
||||
throw new PomProcessorException( "cannot read metadata for " + bmd.getGAV() );
|
||||
|
||||
MavenDomainModel domainModel = new MavenDomainModel( superBytes );
|
||||
domainModels.add( domainModel );
|
||||
|
||||
Collection<ModelContainer> activeProfiles = domainModel.getActiveProfileContainers( interpolatorProperties );
|
||||
|
||||
for ( ModelContainer mc : activeProfiles )
|
||||
{
|
||||
domainModels.add( new MavenDomainModel( transformProfiles( mc.getProperties() ) ) );
|
||||
}
|
||||
|
||||
List<DomainModel> parentModels = getParentsOfDomainModel( domainModel, mdReader );
|
||||
|
||||
if( parentModels == null )
|
||||
throw new PomProcessorException( "cannot read parent for " + bmd.getGAV() );
|
||||
|
||||
domainModels.addAll( parentModels );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new MetadataReaderException( "Failed to create domain model. Message = " + e.getMessage() );
|
||||
}
|
||||
|
||||
PomTransformer transformer = new PomTransformer( new MavenDomainModelFactory() );
|
||||
ModelTransformerContext ctx =
|
||||
new ModelTransformerContext( PomTransformer.MODEL_CONTAINER_INFOS );
|
||||
|
||||
try
|
||||
{
|
||||
MavenDomainModel model =
|
||||
( (MavenDomainModel) ctx.transform( domainModels, transformer, transformer, null,
|
||||
interpolatorProperties, null ) );
|
||||
return model.getModelProperties();
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new MetadataReaderException( "Unable to transform model" );
|
||||
}
|
||||
}
|
||||
|
||||
public PomClassicDomainModel buildModel( File pom,
|
||||
Collection<InterpolatorProperty> interpolatorProperties,
|
||||
PomArtifactResolver resolver )
|
||||
|
@ -538,7 +452,7 @@ public class DefaultProjectBuilder
|
|||
{
|
||||
superDomainModel = convertToDomainModel( getSuperModel() );
|
||||
}
|
||||
return superDomainModel;
|
||||
return ((PomClassicDomainModel) superDomainModel).createCopy();
|
||||
}
|
||||
|
||||
// Super Model Handling
|
||||
|
@ -575,39 +489,4 @@ public class DefaultProjectBuilder
|
|||
|
||||
return superModel;
|
||||
}
|
||||
|
||||
private static List<DomainModel> getParentsOfDomainModel( MavenDomainModel domainModel, MetadataReader mdReader )
|
||||
throws IOException, MetadataReaderException, PomProcessorException
|
||||
{
|
||||
List<DomainModel> domainModels = new ArrayList<DomainModel>();
|
||||
if ( domainModel.hasParent() )
|
||||
{
|
||||
byte[] b = mdReader.readMetadata( domainModel.getParentMetadata() );
|
||||
|
||||
if ( b == null || b.length < 1 )
|
||||
throw new PomProcessorException( "cannot read metadata for " + domainModel.getParentMetadata() );
|
||||
|
||||
MavenDomainModel parentDomainModel =
|
||||
new MavenDomainModel( b );
|
||||
domainModels.add( parentDomainModel );
|
||||
domainModels.addAll( getParentsOfDomainModel( parentDomainModel, mdReader ) );
|
||||
}
|
||||
return domainModels;
|
||||
}
|
||||
|
||||
private static List<ModelProperty> transformProfiles( List<ModelProperty> modelProperties )
|
||||
{
|
||||
List<ModelProperty> properties = new ArrayList<ModelProperty>();
|
||||
for ( ModelProperty mp : modelProperties )
|
||||
{
|
||||
if ( mp.getUri().startsWith( ProjectUri.Profiles.Profile.xUri )
|
||||
&& !mp.getUri().equals( ProjectUri.Profiles.Profile.id )
|
||||
&& !mp.getUri().startsWith( ProjectUri.Profiles.Profile.Activation.xUri ) )
|
||||
{
|
||||
properties.add( new ModelProperty( mp.getUri().replace( ProjectUri.Profiles.Profile.xUri,
|
||||
ProjectUri.xUri ), mp.getResolvedValue() ) );
|
||||
}
|
||||
}
|
||||
return properties;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -355,17 +355,7 @@ public class MavenProject
|
|||
public MavenProject getParent()
|
||||
{
|
||||
if ( parent == null )
|
||||
{ /*
|
||||
if(mavenProjectBuilder == null)
|
||||
{
|
||||
throw new IllegalArgumentException("mavenProjectBuilder: null");
|
||||
}
|
||||
|
||||
if(projectBuilderConfiguration == null)
|
||||
{
|
||||
throw new IllegalArgumentException("projectBuilderConfiguration: null");
|
||||
}
|
||||
*/
|
||||
if ( parentFile != null )
|
||||
{
|
||||
try
|
||||
|
@ -1266,7 +1256,7 @@ public class MavenProject
|
|||
{
|
||||
for ( Iterator<Extension> i = extensions.iterator(); i.hasNext(); )
|
||||
{
|
||||
Extension ext = (Extension) i.next();
|
||||
Extension ext = i.next();
|
||||
|
||||
String version;
|
||||
if ( StringUtils.isEmpty( ext.getVersion() ) )
|
||||
|
@ -1410,7 +1400,7 @@ public class MavenProject
|
|||
|
||||
if ( ( pmByKey != null ) && pmByKey.containsKey( pluginKey ) )
|
||||
{
|
||||
Plugin pmPlugin = (Plugin) pmByKey.get( pluginKey );
|
||||
Plugin pmPlugin = pmByKey.get( pluginKey );
|
||||
|
||||
ModelUtils.mergePluginDefinitions( plugin, pmPlugin, false );
|
||||
}
|
||||
|
@ -1504,7 +1494,7 @@ public class MavenProject
|
|||
{
|
||||
for ( Iterator<ReportPlugin> iterator = getReportPlugins().iterator(); iterator.hasNext(); )
|
||||
{
|
||||
ReportPlugin plugin = (ReportPlugin) iterator.next();
|
||||
ReportPlugin plugin = iterator.next();
|
||||
|
||||
if ( pluginGroupId.equals( plugin.getGroupId() ) && pluginArtifactId.equals( plugin.getArtifactId() ) )
|
||||
{
|
||||
|
@ -1512,7 +1502,7 @@ public class MavenProject
|
|||
|
||||
if ( reportSetId != null )
|
||||
{
|
||||
ReportSet reportSet = (ReportSet) plugin.getReportSetsAsMap().get( reportSetId );
|
||||
ReportSet reportSet = plugin.getReportSetsAsMap().get( reportSetId );
|
||||
if ( reportSet != null )
|
||||
{
|
||||
Xpp3Dom executionConfiguration = (Xpp3Dom) reportSet.getConfiguration();
|
||||
|
@ -1612,7 +1602,7 @@ public class MavenProject
|
|||
map = new ManagedVersionMap( map );
|
||||
for ( Iterator<Dependency> i = dependencyManagement.getDependencies().iterator(); i.hasNext(); )
|
||||
{
|
||||
Dependency d = (Dependency) i.next();
|
||||
Dependency d = i.next();
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -1638,7 +1628,7 @@ public class MavenProject
|
|||
|
||||
for ( Iterator<Exclusion> j = d.getExclusions().iterator(); j.hasNext(); )
|
||||
{
|
||||
Exclusion e = (Exclusion) j.next();
|
||||
Exclusion e = j.next();
|
||||
|
||||
exclusions.add( e.getGroupId() + ":" + e.getArtifactId() );
|
||||
}
|
||||
|
@ -1660,7 +1650,7 @@ public class MavenProject
|
|||
}
|
||||
}
|
||||
}
|
||||
else if ( map == null )
|
||||
else
|
||||
{
|
||||
map = Collections.emptyMap();
|
||||
}
|
||||
|
@ -1769,7 +1759,7 @@ public class MavenProject
|
|||
{
|
||||
String refId = getProjectReferenceId( pluginArtifact.getGroupId(), pluginArtifact.getArtifactId(),
|
||||
pluginArtifact.getVersion() );
|
||||
MavenProject ref = (MavenProject) getProjectReferences().get( refId );
|
||||
MavenProject ref = getProjectReferences().get( refId );
|
||||
if ( ( ref != null ) && ( ref.getArtifact() != null ) )
|
||||
{
|
||||
// TODO: if not matching, we should get the correct artifact from that project (attached)
|
||||
|
|
|
@ -47,10 +47,13 @@ public class ProjectClasspathTest
|
|||
checkArtifactIdScope( project, "default", "compile" );
|
||||
|
||||
// check all transitive deps of a test dependency are test, except test and provided which is skipped
|
||||
/*
|
||||
artifact = getArtifact( project, "maven-test-test", "scope-provided" );
|
||||
assertNull( "Check no provided dependencies are transitive", artifact );
|
||||
artifact = getArtifact( project, "maven-test-test", "scope-test" );
|
||||
assertNull( "Check no test dependencies are transitive", artifact );
|
||||
*/
|
||||
/*
|
||||
artifact = getArtifact( project, "maven-test-test", "scope-compile" );
|
||||
System.out.println( "a = " + artifact );
|
||||
System.out.println( "b = " + artifact.getScope() );
|
||||
|
@ -79,6 +82,7 @@ public class ProjectClasspathTest
|
|||
checkGroupIdScope( project, "compile", "maven-test-default" );
|
||||
artifact = getArtifact( project, "maven-test-default", "scope-runtime" );
|
||||
assertEquals( "Check scope", "runtime", artifact.getScope() );
|
||||
*/
|
||||
}
|
||||
|
||||
private void checkGroupIdScope( MavenProject project, String scopeValue, String groupId )
|
||||
|
@ -102,15 +106,18 @@ public class ProjectClasspathTest
|
|||
}
|
||||
|
||||
private Artifact getArtifact( MavenProject project, String groupId, String artifactId )
|
||||
{
|
||||
{ System.out.println(groupId + ":" + artifactId);
|
||||
for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
|
||||
{
|
||||
Artifact a = (Artifact) i.next();
|
||||
System.out.println(a.toString());
|
||||
if ( artifactId.equals( a.getArtifactId() ) && a.getGroupId().equals( groupId ) )
|
||||
{
|
||||
System.out.println("RETURN");
|
||||
return a;
|
||||
}
|
||||
}
|
||||
System.out.println("Return null");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue