Class MavenModelMerger

java.lang.Object
org.apache.maven.model.merge.ModelMerger
org.apache.maven.model.merge.MavenModelMerger
Direct Known Subclasses:
DefaultDependencyManagementInjector.ManagementModelMerger, DefaultInheritanceAssembler.InheritanceModelMerger, DefaultModelNormalizer.DuplicateMerger, DefaultPluginManagementInjector.ManagementModelMerger, DefaultProfileInjector.ProfileModelMerger

public class MavenModelMerger extends org.apache.maven.model.merge.ModelMerger
The domain-specific model merger for the Maven POM, overriding generic code from parent class when necessary with more adapted algorithms.
Author:
Benjamin Bentmann
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The context key for the artifact id of the target model.
    static final String
    The hint key for the child path adjustment used during inheritance for URL calculations.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
    extrapolateChildUrl(String parentUrl, boolean appendPath, Map<Object,Object> context)
     
    protected Object
    getDependencyKey(org.apache.maven.model.Dependency dependency)
     
    protected Object
    getExclusionKey(org.apache.maven.model.Exclusion exclusion)
     
    protected Object
    getExtensionKey(org.apache.maven.model.Extension extension)
     
    protected Object
    getPluginExecutionKey(org.apache.maven.model.PluginExecution pluginExecution)
     
    protected Object
    getPluginKey(org.apache.maven.model.Plugin plugin)
     
    protected Object
    getReportPluginKey(org.apache.maven.model.ReportPlugin reportPlugin)
     
    protected Object
    getReportSetKey(org.apache.maven.model.ReportSet reportSet)
     
    protected Object
    getRepositoryBaseKey(org.apache.maven.model.RepositoryBase repositoryBase)
     
    protected boolean
    isSiteEmpty(org.apache.maven.model.Site site)
     
    protected void
    mergeBuildBase_Filters(org.apache.maven.model.BuildBase target, org.apache.maven.model.BuildBase source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeBuildBase_Resources(org.apache.maven.model.BuildBase target, org.apache.maven.model.BuildBase source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeBuildBase_TestResources(org.apache.maven.model.BuildBase target, org.apache.maven.model.BuildBase source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeDistributionManagement_Repository(org.apache.maven.model.DistributionManagement target, org.apache.maven.model.DistributionManagement source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeDistributionManagement_Site(org.apache.maven.model.DistributionManagement target, org.apache.maven.model.DistributionManagement source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeDistributionManagement_SnapshotRepository(org.apache.maven.model.DistributionManagement target, org.apache.maven.model.DistributionManagement source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_ArtifactId(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_CiManagement(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Contributors(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Developers(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_IssueManagement(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Licenses(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_MailingLists(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_ModelVersion(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Name(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Organization(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Prerequisites(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Profiles(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModel_Url(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModelBase_Modules(org.apache.maven.model.ModelBase target, org.apache.maven.model.ModelBase source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModelBase_PluginRepositories(org.apache.maven.model.ModelBase target, org.apache.maven.model.ModelBase source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeModelBase_Repositories(org.apache.maven.model.ModelBase target, org.apache.maven.model.ModelBase source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergePlugin_Executions(org.apache.maven.model.Plugin target, org.apache.maven.model.Plugin source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergePluginExecution_Goals(org.apache.maven.model.PluginExecution target, org.apache.maven.model.PluginExecution source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeReportPlugin_ReportSets(org.apache.maven.model.ReportPlugin target, org.apache.maven.model.ReportPlugin source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeScm_Connection(org.apache.maven.model.Scm target, org.apache.maven.model.Scm source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeScm_DeveloperConnection(org.apache.maven.model.Scm target, org.apache.maven.model.Scm source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeScm_Url(org.apache.maven.model.Scm target, org.apache.maven.model.Scm source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeSite(org.apache.maven.model.Site target, org.apache.maven.model.Site source, boolean sourceDominant, Map<Object,Object> context)
     
    protected void
    mergeSite_Url(org.apache.maven.model.Site target, org.apache.maven.model.Site source, boolean sourceDominant, Map<Object,Object> context)
     

    Methods inherited from class org.apache.maven.model.merge.ModelMerger

    getContributorKey, getDeveloperKey, getLicenseKey, getMailingListKey, getNotifierKey, getProfileKey, getRepositoryKey, getResourceKey, merge, mergeActivation, mergeBuild, mergeBuild_Extensions, mergeBuild_OutputDirectory, mergeBuild_ScriptSourceDirectory, mergeBuild_SourceDirectory, mergeBuild_TestOutputDirectory, mergeBuild_TestSourceDirectory, mergeBuildBase, mergeBuildBase_DefaultGoal, mergeBuildBase_Directory, mergeBuildBase_FinalName, mergeCiManagement, mergeCiManagement_Notifiers, mergeCiManagement_System, mergeCiManagement_Url, mergeConfigurationContainer, mergeConfigurationContainer_Configuration, mergeConfigurationContainer_Inherited, mergeContributor, mergeContributor_Email, mergeContributor_Name, mergeContributor_Organization, mergeContributor_OrganizationUrl, mergeContributor_Properties, mergeContributor_Roles, mergeContributor_Timezone, mergeContributor_Url, mergeDependency, mergeDependency_ArtifactId, mergeDependency_Classifier, mergeDependency_Exclusions, mergeDependency_GroupId, mergeDependency_Optional, mergeDependency_Scope, mergeDependency_SystemPath, mergeDependency_Type, mergeDependency_Version, mergeDependencyManagement, mergeDependencyManagement_Dependencies, mergeDeploymentRepository, mergeDeploymentRepository_UniqueVersion, mergeDeveloper, mergeDeveloper_Id, mergeDistributionManagement, mergeDistributionManagement_DownloadUrl, mergeDistributionManagement_Status, mergeExclusion, mergeExclusion_ArtifactId, mergeExclusion_GroupId, mergeExtension, mergeExtension_ArtifactId, mergeExtension_GroupId, mergeExtension_Version, mergeFileSet, mergeFileSet_Directory, mergeIssueManagement, mergeIssueManagement_System, mergeIssueManagement_Url, mergeLicense, mergeLicense_Comments, mergeLicense_Distribution, mergeLicense_Name, mergeLicense_Url, mergeMailingList, mergeMailingList_Archive, mergeMailingList_Name, mergeMailingList_OtherArchives, mergeMailingList_Post, mergeMailingList_Subscribe, mergeMailingList_Unsubscribe, mergeModel_Build, mergeModel_ChildProjectUrlInheritAppendPath, mergeModel_Description, mergeModel_GroupId, mergeModel_InceptionYear, mergeModel_Packaging, mergeModel_Parent, mergeModel_Scm, mergeModel_Version, mergeModelBase, mergeModelBase_Dependencies, mergeModelBase_DependencyManagement, mergeModelBase_DistributionManagement, mergeModelBase_Properties, mergeModelBase_Reporting, mergeNotifier, mergeNotifier_Address, mergeNotifier_Configuration, mergeNotifier_SendOnError, mergeNotifier_SendOnFailure, mergeNotifier_SendOnSuccess, mergeNotifier_SendOnWarning, mergeNotifier_Type, mergeOrganization, mergeOrganization_Name, mergeOrganization_Url, mergeParent, mergeParent_ArtifactId, mergeParent_GroupId, mergeParent_RelativePath, mergeParent_Version, mergePatternSet, mergePatternSet_Excludes, mergePatternSet_Includes, mergePlugin, mergePlugin_ArtifactId, mergePlugin_Dependencies, mergePlugin_Extensions, mergePlugin_GroupId, mergePlugin_Version, mergePluginConfiguration, mergePluginConfiguration_PluginManagement, mergePluginContainer, mergePluginContainer_Plugins, mergePluginExecution, mergePluginExecution_Id, mergePluginExecution_Phase, mergePluginManagement, mergePrerequisites, mergePrerequisites_Maven, mergeProfile, mergeRelocation, mergeRelocation_ArtifactId, mergeRelocation_GroupId, mergeRelocation_Message, mergeRelocation_Version, mergeReporting, mergeReporting_ExcludeDefaults, mergeReporting_OutputDirectory, mergeReporting_Plugins, mergeReportPlugin, mergeReportPlugin_ArtifactId, mergeReportPlugin_GroupId, mergeReportPlugin_Version, mergeReportSet, mergeReportSet_Id, mergeReportSet_Reports, mergeRepository, mergeRepository_Releases, mergeRepository_Snapshots, mergeRepositoryBase, mergeRepositoryBase_Id, mergeRepositoryBase_Layout, mergeRepositoryBase_Name, mergeRepositoryBase_Url, mergeRepositoryPolicy, mergeRepositoryPolicy_ChecksumPolicy, mergeRepositoryPolicy_Enabled, mergeRepositoryPolicy_UpdatePolicy, mergeResource, mergeResource_Filtering, mergeResource_MergeId, mergeResource_TargetPath, mergeScm, mergeScm_ChildScmConnectionInheritAppendPath, mergeScm_ChildScmDeveloperConnectionInheritAppendPath, mergeScm_ChildScmUrlInheritAppendPath, mergeScm_Tag, mergeSite_ChildSiteUrlInheritAppendPath, mergeSite_Id, mergeSite_Name

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • CHILD_PATH_ADJUSTMENT

      public static final String CHILD_PATH_ADJUSTMENT
      The hint key for the child path adjustment used during inheritance for URL calculations.
      See Also:
    • ARTIFACT_ID

      public static final String ARTIFACT_ID
      The context key for the artifact id of the target model.
      See Also:
  • Constructor Details

    • MavenModelMerger

      public MavenModelMerger()
  • Method Details

    • mergeModel

      protected void mergeModel(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Name

      protected void mergeModel_Name(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Name in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Url

      protected void mergeModel_Url(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Url in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Organization

      protected void mergeModel_Organization(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Organization in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_IssueManagement

      protected void mergeModel_IssueManagement(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_IssueManagement in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_CiManagement

      protected void mergeModel_CiManagement(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_CiManagement in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_ModelVersion

      protected void mergeModel_ModelVersion(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_ModelVersion in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_ArtifactId

      protected void mergeModel_ArtifactId(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_ArtifactId in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Profiles

      protected void mergeModel_Profiles(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Profiles in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Prerequisites

      protected void mergeModel_Prerequisites(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Prerequisites in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Licenses

      protected void mergeModel_Licenses(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Licenses in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Developers

      protected void mergeModel_Developers(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Developers in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_Contributors

      protected void mergeModel_Contributors(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_Contributors in class org.apache.maven.model.merge.ModelMerger
    • mergeModel_MailingLists

      protected void mergeModel_MailingLists(org.apache.maven.model.Model target, org.apache.maven.model.Model source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModel_MailingLists in class org.apache.maven.model.merge.ModelMerger
    • mergeModelBase_Modules

      protected void mergeModelBase_Modules(org.apache.maven.model.ModelBase target, org.apache.maven.model.ModelBase source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModelBase_Modules in class org.apache.maven.model.merge.ModelMerger
    • mergeModelBase_Repositories

      protected void mergeModelBase_Repositories(org.apache.maven.model.ModelBase target, org.apache.maven.model.ModelBase source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModelBase_Repositories in class org.apache.maven.model.merge.ModelMerger
    • mergeModelBase_PluginRepositories

      protected void mergeModelBase_PluginRepositories(org.apache.maven.model.ModelBase target, org.apache.maven.model.ModelBase source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeModelBase_PluginRepositories in class org.apache.maven.model.merge.ModelMerger
    • mergeBuildBase_Filters

      protected void mergeBuildBase_Filters(org.apache.maven.model.BuildBase target, org.apache.maven.model.BuildBase source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeBuildBase_Filters in class org.apache.maven.model.merge.ModelMerger
    • mergeBuildBase_Resources

      protected void mergeBuildBase_Resources(org.apache.maven.model.BuildBase target, org.apache.maven.model.BuildBase source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeBuildBase_Resources in class org.apache.maven.model.merge.ModelMerger
    • mergeBuildBase_TestResources

      protected void mergeBuildBase_TestResources(org.apache.maven.model.BuildBase target, org.apache.maven.model.BuildBase source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeBuildBase_TestResources in class org.apache.maven.model.merge.ModelMerger
    • mergeDistributionManagement_Repository

      protected void mergeDistributionManagement_Repository(org.apache.maven.model.DistributionManagement target, org.apache.maven.model.DistributionManagement source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeDistributionManagement_Repository in class org.apache.maven.model.merge.ModelMerger
    • mergeDistributionManagement_SnapshotRepository

      protected void mergeDistributionManagement_SnapshotRepository(org.apache.maven.model.DistributionManagement target, org.apache.maven.model.DistributionManagement source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeDistributionManagement_SnapshotRepository in class org.apache.maven.model.merge.ModelMerger
    • mergeDistributionManagement_Site

      protected void mergeDistributionManagement_Site(org.apache.maven.model.DistributionManagement target, org.apache.maven.model.DistributionManagement source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeDistributionManagement_Site in class org.apache.maven.model.merge.ModelMerger
    • mergeSite

      protected void mergeSite(org.apache.maven.model.Site target, org.apache.maven.model.Site source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeSite in class org.apache.maven.model.merge.ModelMerger
    • isSiteEmpty

      protected boolean isSiteEmpty(org.apache.maven.model.Site site)
    • mergeSite_Url

      protected void mergeSite_Url(org.apache.maven.model.Site target, org.apache.maven.model.Site source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeSite_Url in class org.apache.maven.model.merge.ModelMerger
    • mergeScm_Url

      protected void mergeScm_Url(org.apache.maven.model.Scm target, org.apache.maven.model.Scm source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeScm_Url in class org.apache.maven.model.merge.ModelMerger
    • mergeScm_Connection

      protected void mergeScm_Connection(org.apache.maven.model.Scm target, org.apache.maven.model.Scm source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeScm_Connection in class org.apache.maven.model.merge.ModelMerger
    • mergeScm_DeveloperConnection

      protected void mergeScm_DeveloperConnection(org.apache.maven.model.Scm target, org.apache.maven.model.Scm source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeScm_DeveloperConnection in class org.apache.maven.model.merge.ModelMerger
    • mergePlugin_Executions

      protected void mergePlugin_Executions(org.apache.maven.model.Plugin target, org.apache.maven.model.Plugin source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergePlugin_Executions in class org.apache.maven.model.merge.ModelMerger
    • mergePluginExecution_Goals

      protected void mergePluginExecution_Goals(org.apache.maven.model.PluginExecution target, org.apache.maven.model.PluginExecution source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergePluginExecution_Goals in class org.apache.maven.model.merge.ModelMerger
    • mergeReportPlugin_ReportSets

      protected void mergeReportPlugin_ReportSets(org.apache.maven.model.ReportPlugin target, org.apache.maven.model.ReportPlugin source, boolean sourceDominant, Map<Object,Object> context)
      Overrides:
      mergeReportPlugin_ReportSets in class org.apache.maven.model.merge.ModelMerger
    • getDependencyKey

      protected Object getDependencyKey(org.apache.maven.model.Dependency dependency)
      Overrides:
      getDependencyKey in class org.apache.maven.model.merge.ModelMerger
    • getPluginKey

      protected Object getPluginKey(org.apache.maven.model.Plugin plugin)
      Overrides:
      getPluginKey in class org.apache.maven.model.merge.ModelMerger
    • getPluginExecutionKey

      protected Object getPluginExecutionKey(org.apache.maven.model.PluginExecution pluginExecution)
      Overrides:
      getPluginExecutionKey in class org.apache.maven.model.merge.ModelMerger
    • getReportPluginKey

      protected Object getReportPluginKey(org.apache.maven.model.ReportPlugin reportPlugin)
      Overrides:
      getReportPluginKey in class org.apache.maven.model.merge.ModelMerger
    • getReportSetKey

      protected Object getReportSetKey(org.apache.maven.model.ReportSet reportSet)
      Overrides:
      getReportSetKey in class org.apache.maven.model.merge.ModelMerger
    • getRepositoryBaseKey

      protected Object getRepositoryBaseKey(org.apache.maven.model.RepositoryBase repositoryBase)
      Overrides:
      getRepositoryBaseKey in class org.apache.maven.model.merge.ModelMerger
    • getExtensionKey

      protected Object getExtensionKey(org.apache.maven.model.Extension extension)
      Overrides:
      getExtensionKey in class org.apache.maven.model.merge.ModelMerger
    • getExclusionKey

      protected Object getExclusionKey(org.apache.maven.model.Exclusion exclusion)
      Overrides:
      getExclusionKey in class org.apache.maven.model.merge.ModelMerger
    • extrapolateChildUrl

      protected String extrapolateChildUrl(String parentUrl, boolean appendPath, Map<Object,Object> context)